Forum Discussion

erki's avatar
erki
Occasional Contributor
11 years ago

mock error in browser using OnRequest script

I have developed a mock service using soapUI, but when i open it in browser i get an error:

Tue Dec 10 11:35:14 EET 2013:ERROR:An error occurred [groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method com.eviware.soapui.support.XmlHolder#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[interface org.apache.xmlbeans.XmlObject]
[interface org.w3c.dom.Node]], see error log for details

I am using a OnRequest script that initiates a XmlHolder that is causing the trouble:

import com.eviware.soapui.impl.wsdl.support.soap.SoapMessageBuilder
def holder = new com.eviware.soapui.support.XmlHolder( mockRequest.requestContent )
... skipped

Everything works inside soapUI. Any ideas on that?

Error itself:

Tue Dec 10 11:43:12 EET 2013:ERROR:com.eviware.soapui.impl.wsdl.mock.DispatchException: groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method com.eviware.soapui.support.XmlHolder#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[interface org.apache.xmlbeans.XmlObject]
[interface org.w3c.dom.Node]
com.eviware.soapui.impl.wsdl.mock.DispatchException: groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method com.eviware.soapui.support.XmlHolder#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[interface org.apache.xmlbeans.XmlObject]
[interface org.w3c.dom.Node]
at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:388)
at com.eviware.soapui.monitor.JettyMockEngine$ServerHandler.handle(JettyMockEngine.java:715)
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.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
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: groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method com.eviware.soapui.support.XmlHolder#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[interface org.apache.xmlbeans.XmlObject]
[interface org.w3c.dom.Node]
at groovy.lang.MetaClassImpl.chooseMostSpecificParams(MetaClassImpl.java:2980)
at groovy.lang.MetaClassImpl.chooseMethodInternal(MetaClassImpl.java:2932)
at groovy.lang.MetaClassImpl.chooseMethod(MetaClassImpl.java:2875)
at groovy.lang.MetaClassImpl.createConstructorSite(MetaClassImpl.java:3129)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallConstructorSite(CallSiteArray.java:88)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
at Script140.run(Script140.groovy:3)
at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:96)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockService.runOnRequestScript(WsdlMockService.java:638)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:369)
... 13 more

5 Replies

  • erki's avatar
    erki
    Occasional Contributor
    It is sad to be stupid. You have to check what is coming in, so before anything you check:

    if( mockRequest.httpRequest.method == "POST" )
  • SmartBear_Suppo's avatar
    SmartBear_Suppo
    SmartBear Alumni (Retired)
    So to confirm, is your mock service working with the check for HTTP Method?

    Thanks,
    Michael Giller
    SmartBear Software