Troubleshooting
Problem
An error is received when you attempt to invoke a Web service export from a Web Service Description Language (WSDL) that has a multi-part output message.
Symptom
In this scenario, the WSDL has multiple parts in its output message, as shown below, and is used as web service export in WebSphere Process Server:
<wsdl:message name="OutputMessage">
<wsdl:part name="ResponseHeader" element="rh:OutputResponseHeader"/>
<wsdl:part name="DetailsResponse" element="dm:OutputDetailsResponse"/>
</wsdl:message>
When calling this implemented web service, you might see the following error messages:
[9/29/08 10:25:01:359 EDT] 00000096 WebServicesSe E
com.ibm.ws.webservices.engine.transport.http.WebServicesServlet doPost
WSWS3227E: Error: Exception:
WebServicesFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultString: java.lang.IllegalArgumentException: WSWS3320E: Error:
Illegal argument passed to ParameterDesc.setJavaType. The java type
javax.xml.soap.SOAPElement does not match the mode out. Message being
parsed:
faultActor: null
faultDetail:
java.lang.IllegalArgumentException: WSWS3320E: Error: Illegal argument passed to ParameterDesc.setJavaType. The java type javax.xml.soap.SOAPElement does not match the mode out. Message being parsed:
at com.ibm.ws.webservices.engine.WebServicesFault.makeFault(WebServicesFault.java:208)
...... more
Caused by: java.lang.IllegalArgumentException: WSWS3320E: Error: Illegal
argument passed to ParameterDesc.setJavaType. The java type
javax.xml.soap.SOAPElement does not match the mode out.
at com.ibm.ws.webservices.engine.description.ParameterDesc.setJavaSigType(P
arameterDesc.java:402)
at
com.ibm.ws.webservices.engine.description.PortDesc.syncOperationToClass(
PortDesc.java:649)
at
com.ibm.ws.webservices.engine.description.PortDesc.getSyncedOperationsFo
rName(PortDesc.java:882)
at
com.ibm.ws.webservices.engine.description.PortDesc.loadPortDescByIntrosp
ectionRecursive(PortDesc.java:806)
at
com.ibm.ws.webservices.engine.description.PortDesc.loadPortDescByIntrosp
ection(PortDesc.java:781)
at
com.ibm.ws.webservices.engine.description.PortDesc.loadPortDescByIntrosp
ection(PortDesc.java:709)
at
com.ibm.ws.webservices.engine.description.PortDesc.getOperations(PortDes
c.java:397)
at
com.ibm.ws.webservices.engine.xmlsoap.ext.RequestResponse.getPossibleOpe
rationsByQName(RequestResponse.java:867)
at
com.ibm.ws.webservices.engine.xmlsoap.builders.SOAPBodyBuilder.onStartCh
ild(SOAPBodyBuilder.java:350)
at
com.ibm.ws.webservices.engine.events.P2DConverter.startElement(P2DConver
ter.java:403)
at
com.ibm.ws.webservices.engine.events.P2DConverter.startElement(P2DConver
ter.java:344)
at
com.ibm.xml.xlxp.api.sax.impl.SAX2ParserBase.startElementAction(SAX2Pars
erBase.java:234)
at
com.ibm.xml.xlxp.api.was.WSXMLReader.startElementAction(WSXMLReader.java
:140)
at
com.ibm.xml.xlxp.api.sax.impl.SAX2ParserBase.startElementEvent(SAX2Parse
rBase.java:218)
at
com.ibm.xml.xlxp.api.was.WSXMLReader$WSScannerHelper.produceStartElement
Event(WSXMLReader.java:371)
at
com.ibm.xml.xlxp.api.util.SimpleScannerHelper.finishStartElement(SimpleS
cannerHelper.java:704)
at
com.ibm.xml.xlxp.scan.DocumentEntityScanner.scanStartElementUnbuffered(D
ocumentEntityScanner.java:3386)
at
com.ibm.xml.xlxp.api.util.SimpleScannerHelper.scanStartElementUnbuffered
(SimpleScannerHelper.java:932)
at
com.ibm.xml.xlxp.scan.DocumentEntityScanner.stateUnbufferedStartElement(
DocumentEntityScanner.java:466)
at
com.ibm.xml.xlxp.scan.DocumentEntityScanner.scanContentUnbuffered(Docume
ntEntityScanner.java:2602)
at
com.ibm.xml.xlxp.api.util.SimpleScannerHelper.scanContentUnbuffered(Simp
leScannerHelper.java:1237)
at
com.ibm.xml.xlxp.scan.DocumentEntityScanner.stateUnbufferedContent(Docum
entEntityScanner.java:510)
at
com.ibm.xml.xlxp.scan.DocumentEntityScanner.produceEvent(DocumentEntityS
canner.java:580)
at
com.ibm.xml.xlxp.api.util.SimpleScannerHelper.produceEvents(SimpleScanne
rHelper.java:329)
at
com.ibm.xml.xlxp.api.util.SimpleScannerHelper.parseDocumentEntity(Simple
ScannerHelper.java:325)
at
com.ibm.xml.xlxp.api.was.WSXMLReader.parseEvents(WSXMLReader.java:118)
at
com.ibm.xml.xlxp.api.sax.impl.SAX2ParserBase.parseEntity(SAX2ParserBase.
java:1101)
at
com.ibm.xml.xlxp.api.sax.impl.SAX2ParserBase.parse(SAX2ParserBase.java:1
139)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at
com.ibm.ws.webservices.engine.utils.WebServicesParser.parse(WebServicesP
arser.java:342)
at
com.ibm.ws.webservices.engine.encoding.DeserializationContextImpl.parse(
DeserializationContextImpl.java:269)
at
com.ibm.ws.webservices.engine.SOAPPart._getSOAPEnvelope(SOAPPart.java:10
36)
... 32 more
Resolving The Problem
Multiple part output messages are not supported in all releases of WebSphere Process Server 6.2 or earlier.
To avoid this error, you can modify the WSDL to use single part output messages.
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg21377147