2017-03-07 187 views
0

我的問題是: 我在SoapUI模擬中獲得了UTF-8-BOM中的Soap-requests。 SoapUI無法處理UTF-8-BOM。如果我嘗試處理UTF-8-BOM請求,則會收到錯誤「org.apache.xmlbeans.XmlException:錯誤:內容在prolog中不允許。」 我想用OnRequest腳本替換請求中的第一個字節。如何使用OnRequest模擬腳本(groovy)在SoapUI中設置RequestContent

我在「OnRequest腳本」中編寫了這段代碼來替換我的請求的第一個字節。

def mockRequestContent 
try { 
    mockRequestContent = mockRequest.getRequestContent() 
    mockRequestContent = replace(mockRequestContent) // method returns substring(1) 
    mockRequest.setRequestContent(mockRequestContent) 
} catch (Exception e) { 
    log.info(e) 
} 

但是,當我發送一個響應我的模擬,我沒有得到在選項卡「腳本日誌」的錯誤,但我在選項卡「錯誤日誌」(見下文)得到一個錯誤。

設置請求內容的正確方法是什麼?

錯誤選項卡上的「錯誤日誌」

Mon Mar 06 19:02:26 MSK 2017:ERROR:org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
Script25.groovy: 97: unexpected token: catch @ line 97, column 4. 
    } catch {Exception e} { 
    ^
org.codehaus.groovy.syntax.SyntaxException: unexpected token: catch @ line 97, column 4. 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:140) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108) 
    at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236) 
    at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:162) 
    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.processPhaseOperations(CompilationUnit.java:550) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:527) 
    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:136) 
    at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.dispatch.ScriptMockOperationDispatcher.selectMockResponse(ScriptMockOperationDispatcher.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation.dispatchRequest(WsdlMockOperation.java:199) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchPostRequest(WsdlMockDispatcher.java:219) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchRequest(WsdlMockDispatcher.java:114) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:142) 
    at com.eviware.soapui.monitor.JettyMockEngine$ServerHandler.handle(JettyMockEngine.java:604) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: Script25.groovy:97:4: unexpected token: catch 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.tryBlock(GroovyRecognizer.java:9344) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1130) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.blockBody(GroovyRecognizer.java:1495) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.openBlock(GroovyRecognizer.java:8315) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.variableDefinitions(GroovyRecognizer.java:2364) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.declaration(GroovyRecognizer.java:2140) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1208) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.compilationUnit(GroovyRecognizer.java:757) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:131) 
    ... 33 more 

1 error 

    org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
    Script25.groovy: 97: unexpected token: catch @ line 97, column 4. 
     } catch {Exception e} { 
     ^
    org.codehaus.groovy.syntax.SyntaxException: unexpected token: catch @ line 97, column 4. 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:140) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108) 
    at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236) 
    at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:162) 
    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.processPhaseOperations(CompilationUnit.java:550) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:527) 
    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:136) 
    at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.dispatch.ScriptMockOperationDispatcher.selectMockResponse(ScriptMockOperationDispatcher.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation.dispatchRequest(WsdlMockOperation.java:199) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchPostRequest(WsdlMockDispatcher.java:219) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchRequest(WsdlMockDispatcher.java:114) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:142) 
    at com.eviware.soapui.monitor.JettyMockEngine$ServerHandler.handle(JettyMockEngine.java:604) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
    Caused by: Script25.groovy:97:4: unexpected token: catch 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.tryBlock(GroovyRecognizer.java:9344) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1130) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.blockBody(GroovyRecognizer.java:1495) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.openBlock(GroovyRecognizer.java:8315) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.variableDefinitions(GroovyRecognizer.java:2364) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.declaration(GroovyRecognizer.java:2140) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1208) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.compilationUnit(GroovyRecognizer.java:757) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:131) 
    ... 33 more 
    1 error 
    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:309) 
    at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:149) 
    at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:119) 
    at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:131) 
    at org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:359) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:142) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108) 
    at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236) 
    at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:162) 
    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.processPhaseOperations(CompilationUnit.java:550) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:527) 
    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:136) 
    at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.dispatch.ScriptMockOperationDispatcher.selectMockResponse(ScriptMockOperationDispatcher.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation.dispatchRequest(WsdlMockOperation.java:199) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchPostRequest(WsdlMockDispatcher.java:219) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchRequest(WsdlMockDispatcher.java:114) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:142) 
    at com.eviware.soapui.monitor.JettyMockEngine$ServerHandler.handle(JettyMockEngine.java:604) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Mon Mar 06 19:02:26 MSK 2017:ERROR:com.eviware.soapui.impl.wsdl.mock.DispatchException: Failed to dispatch using script; org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
Script25.groovy: 97: unexpected token: catch @ line 97, column 4. 
    } catch {Exception e} { 
    ^
org.codehaus.groovy.syntax.SyntaxException: unexpected token: catch @ line 97, column 4. 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:140) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108) 
    at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236) 
    at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:162) 
    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.processPhaseOperations(CompilationUnit.java:550) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:527) 
    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:136) 
    at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.dispatch.ScriptMockOperationDispatcher.selectMockResponse(ScriptMockOperationDispatcher.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation.dispatchRequest(WsdlMockOperation.java:199) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchPostRequest(WsdlMockDispatcher.java:219) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchRequest(WsdlMockDispatcher.java:114) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:142) 
    at com.eviware.soapui.monitor.JettyMockEngine$ServerHandler.handle(JettyMockEngine.java:604) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: Script25.groovy:97:4: unexpected token: catch 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.tryBlock(GroovyRecognizer.java:9344) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1130) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.blockBody(GroovyRecognizer.java:1495) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.openBlock(GroovyRecognizer.java:8315) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.variableDefinitions(GroovyRecognizer.java:2364) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.declaration(GroovyRecognizer.java:2140) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1208) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.compilationUnit(GroovyRecognizer.java:757) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:131) 
    ... 33 more 

1 error 

    com.eviware.soapui.impl.wsdl.mock.DispatchException: Failed to dispatch using script; org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
    Script25.groovy: 97: unexpected token: catch @ line 97, column 4. 
     } catch {Exception e} { 
     ^
    org.codehaus.groovy.syntax.SyntaxException: unexpected token: catch @ line 97, column 4. 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:140) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108) 
    at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236) 
    at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:162) 
    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.processPhaseOperations(CompilationUnit.java:550) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:527) 
    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:136) 
    at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.dispatch.ScriptMockOperationDispatcher.selectMockResponse(ScriptMockOperationDispatcher.java:87) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation.dispatchRequest(WsdlMockOperation.java:199) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchPostRequest(WsdlMockDispatcher.java:219) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchRequest(WsdlMockDispatcher.java:114) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:142) 
    at com.eviware.soapui.monitor.JettyMockEngine$ServerHandler.handle(JettyMockEngine.java:604) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
    Caused by: Script25.groovy:97:4: unexpected token: catch 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.tryBlock(GroovyRecognizer.java:9344) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1130) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.blockBody(GroovyRecognizer.java:1495) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.openBlock(GroovyRecognizer.java:8315) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.variableDefinitions(GroovyRecognizer.java:2364) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.declaration(GroovyRecognizer.java:2140) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1208) 
    at org.codehaus.groovy.antlr.parser.GroovyRecognizer.compilationUnit(GroovyRecognizer.java:757) 
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:131) 
    ... 33 more 
    1 error 
    at com.eviware.soapui.impl.wsdl.mock.dispatch.ScriptMockOperationDispatcher.selectMockResponse(ScriptMockOperationDispatcher.java:91) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation.dispatchRequest(WsdlMockOperation.java:199) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchPostRequest(WsdlMockDispatcher.java:219) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockDispatcher.dispatchRequest(WsdlMockDispatcher.java:114) 
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:142) 
    at com.eviware.soapui.monitor.JettyMockEngine$ServerHandler.handle(JettyMockEngine.java:604) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
+0

爲什麼你有捲曲在stacktrace中'Exception e'周圍的括號 - }在代碼中catch {Exception e} {'但'(Exception e)'? –

+0

@EelLee這不是我的錯誤。看起來,「} catch {Exception e} {」是本地Soap UI代碼。 – Maxim

回答

0

如果我用你的代碼在MockService一個OnRequest script(添加log.info跟蹤起初請求):

def mockRequestContent 
try { 
    mockRequestContent = mockRequest.getRequestContent() 
    // log request 
    log.info mockRequestContent 
    mockRequestContent = mockRequestContent.substring(1) 
    mockRequest.setRequestContent(mockRequestContent) 
} catch (Exception e) { 
    log.info(e) 
} 

而且作爲模擬操作的Dispach: SCRIPT,我再次記錄由於之前的OnRequest script而導致的響應substring(1)

log.info mockRequest.getRequestContent() 
return 'DefaultMockResponseName' 

如果我啓動模擬服務,併發送這個作爲一個示例XML(第一<是樣品,除去第一個字符):

<<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"> 
    <Header/> 
    <Body> 
     <test> 
     </test> 
    </Body> 
</Envelope> 

然後在Script log我看到預期的輸出,其中的第一個字符移除:

Tue Mar 07 11:36:22 CET 2017:INFO:<<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Header/><Body><test></test></Body></Envelope> 
Tue Mar 07 11:36:22 CET 2017:INFO:<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Header/><Body><test></test></Body></Envelope> 

如果它可以幫助我與SOAPUI版本5.2.1試圖

+0

Thx很多。我只需要能夠說這個代碼運行良好的人。問題在於我在模擬響應中調用的腳本。 – Maxim

+0

@Maxim不客氣:) – albciff

相關問題