soapRPC with Object parameters

I’m calling a WebSphere web service written by a vendor using soapRPC. The method requires 2 HashMap fields as input parameters. I created the HashMap fields in Java and passed back to webMethods as Objects, but when I pass them into the soapRPC call, I get the following error. Does soapRPC not handle parameters that are objects?

  <?xml version='1.0' encoding='UTF-8'?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:n1="http://www.webmethods.com/package/java.lang/" xmlns:h="http://www.bricsnet.com/connector-1.4/headers_ns.xsd"><soap:Header><h:overflow soap:mustUnderstand="false">false</h:overflow></soap:Header><soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><soap:Fault><faultcode>soap:Server</faultcode><faultstring>could not find operation corresponding to getObjectList(java.lang.String,java.lang.String). log MAPPING events to check that client-side map files are being read.</faultstring><detail><stacktrace>java.lang.NoSuchMethodException: could not find operation corresponding to getObjectList(java.lang.String,java.lang.String). log MAPPING events to check that client-side map files are being read.
    at electric.util.reflect.OperationLookup.newNoSuchMethodException(Unknown Source)
    at electric.util.reflect.OperationLookup.getOperations(Unknown Source)
    at electric.util.reflect.OperationLookup.getOperation(Unknown Source)
    at electric.util.reflect.OperationLookup.getOperation(Unknown Source)
    at electric.soap.local.handlers.service.rpc.RPCOperationLookup.getOperation(Unknown Source)
    at electric.soap.local.handlers.service.SOAPToServiceHandler.invoke(Unknown Source)
    at electric.soap.local.handlers.service.SOAPToServiceHandler.handle(Unknown Source)
    at electric.soap.security.handlers.SecurityHandler.handle(Unknown Source)
    at electric.soap.handlers.interceptor.SOAPInterceptorHandler.handle(Unknown Source)
    at electric.soap.routing.RoutingHandler.handle(Unknown Source)
    at electric.soap.handlers.logging.SOAPLoggingHandler.handle(Unknown Source)
    at electric.soap.handlers.setup.SetupHandler.handle(Unknown Source)
    at electric.soap.http.handler.HTTPToSOAP.service(Unknown Source)
    at electric.server.http.ServletServer.service(Unknown Source)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1284)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:674)
    at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:89)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1924)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:89)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:288)
    at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:950)
    at com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:582)
    at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1701)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code))
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code))
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code))
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
</stacktrace></detail><tme:exception xmlns:tme="http://www.webmethods.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><name>java.lang.NoSuchMethodException</name><object xsi:type="n1:NoSuchMethodException"><detailMessage>could not find operation corresponding to getObjectList(java.lang.String,java.lang.String). log MAPPING events to check that client-side map files are being read.</detailMessage></object></tme:exception></soap:Fault></soap:Body></soap:Envelope>

The server is complaining about “…could not find operation corresponding to getObjectList…” Is that the name of the operation you’re trying to call?

Can you post your SOAP request?

Is there any flexibility on the server side to switch things to not use SOAP-RPC? There a many reasons for not using SOAP-RPC which have been covered in various posts.

Also, it appears that webMethods Glue is in use somewhere in the process (hence the “electric.xml.*” references in the stacktrace).

How is Glue being used? It is installed as a web service agent in Websphere?

Mark