2015-04-06 43 views
0

所有,SOAPUI:HTTPBuilder - 無法解決類 - 例外

我有我的Groovy腳本與HTTPBuilder類的問題,同時嘗試後我的XML格式請求到WSDL。我究竟做錯了什麼?

下面是我的代碼:

import groovyx.net.http.HTTPBuilder.* 
import static groovyx.net.http.ContentType.* 
import static groovyx.net.http.Method.* 

def baseURL  = "http://server:port" 
def pathIn  = "/folder1/folder2" 

/* Groovy Utilities Declaration */ 
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 

/* Request - modified - Holder Setup */ 
def modRequest  = context.expand('${Groovy Script - Modify Request#Result}') 
def modRequestHolder  = groovyUtils.getXmlHolder("modRequest") 

/* Define few variables for httpbuilder */ 
def httpWSDL = new HTTPBuilder(baseURL) 
def respReturn = null 

// Post the request against the WSDL using (httpbuilder.request(Method POST, ContentType XML); set uri.path to the path after base url of wsdl & body to requestholder.xml 
// perform a POST request, expecting XML response 
httpWSDL.request(POST, XML){ req -> 
    uri.path  = pathIn 
    body   = modRequestHolder.xml 

    // response handler for a success response code 
    response.success = { resp, reader -> 

     ret = reader.getXML() 

     println 'Response data: -----' 
     println respReturn 
     println '--------------------' 
    } 
} 

以下是例外:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script1.groovy: 26: unable to resolve class HTTPBuilder @ line 26, column 24. 
def httpWSDL = new HTTPBuilder(baseURL)^
org.codehaus.groovy.syntax.SyntaxException: unable to resolve class HTTPBuilder @ line 26, column 24. 
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.addError(ClassCodeVisitorSupport.java:146) 
at org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:222) 
at org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:232) 
at org.codehaus.groovy.control.ResolveVisitor.transformConstructorCallExpression(ResolveVisitor.java:969) 
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:646) 
at org.codehaus.groovy.control.ResolveVisitor.transformDeclarationExpression(ResolveVisitor.java:1010) 
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:638) 
at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:139) 
at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40) 
at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35) 
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:163) 
at org.codehaus.groovy.control.ResolveVisitor.visitBlockStatement(ResolveVisitor.java:1240) 
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69) 
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:101) 
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:112) 
at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:50) 
at org.codehaus.groovy.control.ResolveVisitor.visitConstructorOrMethod(ResolveVisitor.java:166) 
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:123) 
at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1055) 
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:50) 
at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1183) 
at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:141) 
at org.codehaus.groovy.control.CompilationUnit$10.call(CompilationUnit.java:632) 
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:912) 
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:574) 
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:523) 
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:279) 
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:258) 
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:613) 
at groovy.lang.GroovyShell.parse(GroovyShell.java:625) 
at groovy.lang.GroovyShell.parse(GroovyShell.java:652) 
at groovy.lang.GroovyShell.parse(GroovyShell.java:643) 
at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.compile(SoapUIGroovyScriptEngine.java:138) 
at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:89) 
at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SourceFile:79) 
at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:138) 
at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:213) 
at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runCurrentTestStep(WsdlTestCaseRunner.java:47) 
at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:139) 
at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:47) 
at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:129) 
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 1 error 

注:HTTPBuilder JAR文件安裝在兩個內線&的lib文件夾(我這樣做閱讀幾個論壇後)。其中一些人建議我導入REST客戶端。我該怎麼做呢?另外,我正在開發的wsdl是一個SOAP服務。我仍然需要導入REST插件嗎?

我是SOAPUI的新手& Groovy,並找到我的路。

這將是偉大的是任何人都可以幫助我。提前致謝!

回答

0

我認爲如果您複製/ext/lib文件夾中的所有需要​​的罐子,您的代碼必須工作。我認爲問題是,你正在使用的*import的路徑類,這是不是一個路徑封裝,更確切地說是:

import groovyx.net.http.HTTPBuilder.*

應該是:

import groovyx.net.http.HTTPBuilder

由於groovyx.net.http.HTTPBuilder它直接是一個類,你不能添加*到最後,這就是爲什麼你的groovy script投擲org.codehaus.groovy.syntax.SyntaxException: unable to resolve class HTTPBuilder

希望這會有所幫助,

+0

謝謝Albciff!是的,那是錯誤的。我必須更多地閱讀那部分。再次感謝! – ssc

+0

@ssc沒問題':)'。別客氣! – albciff

+0

當我現在運行腳本時,我得到groovyx.net.http.ParserRegistry類def未找到錯誤。你能幫我弄清楚爲什麼我得到這個錯誤?所有的JAR文件都在正確的位置。我嘗試了幾個導入: import com.sun.org.apache.xml.internal.resolver.CatalogManager; import groovyx.net.http。*; import groovyx.net.http.HTTPBuilder; import static groovyx.net.http.ContentType。*; import static groovyx.net.http.Method。*; import javax.xml.parsers.ParserConfigurationException; import groovyx.net.http.HTTPBuilder.RequestConfigDelegate; – ssc