IBM Support

Multipart output message WSDL is not supported by Service Component Architecture

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.

[{"Product":{"code":"SSQH9M","label":"WebSphere Process Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Service Component Architecture","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF012","label":"IBM i"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"6.2;6.1.2.2;6.1.2.1;6.1.2;6.1.0.3;6.1.0.2;6.1.0.1;6.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}},{"Product":{"code":"SS7J6S","label":"WebSphere Enterprise Service Bus"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":" ","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21377147