Hi Lee,

you should use useJbiWrapper=false to avoid that the SOAP envelope is embedded into a JBI message.

Regards
JB

LeeCK wrote:
Hi,

I tried to send the soap message with complex type to http consumer which
then forward the message to apache ode bpel su but failed. What did I do
wrong here?

It works if the request is just a String.
    <message name="GetGroupRequest">
        <part name="text" type="xsd:string"/>
    </message>

Soap Message:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
  <soap:Body>
        <GetResult xmlns:mossin="urn:/mossin.wsdl"/>
                <text1>a</text1>
                <text2>a</text2>
                <text3>a</text3>
                <text4>a</text4>
                <text5>a</text5>
        </GetResult>              
  </soap:Body>
</soap:Envelope>

Consumer xbean:
<beans xmlns:http="http://servicemix.apache.org/http/1.0";
       xmlns:mossin="http://servicemix.apache.org/mossin";>
  <http:endpoint service="mossin:MossinService"
                 endpoint="soap"
                 role="consumer"
                 locationURI="http://localhost:8080/mossin/";
                 defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
                 soap="true" />
</beans>

Wsdl in bpel.zip:
<?xml version="1.0"?>
<definitions name="Mossin"
        targetNamespace="urn:/mossin.wsdl"
        xmlns:tns="urn:/mossin.wsdl"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
        xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";
        xmlns="http://schemas.xmlsoap.org/wsdl/";
        xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
    <types>
        <schema targetNamespace="urn:/mossin.wsdl"
                xmlns="http://www.w3.org/2000/10/XMLSchema";>
            <element name="MossinRequest">
                <complexType>
                    <sequence>
                        <element name="text1" type="xsd:string"/>
                        <element name="text2" type="xsd:string"/>
                        <element name="text3" type="xsd:string"/>
                        <element name="text4" type="xsd:string"/>
                        <element name="text5" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>
            <element name="MossinResponse">
                <complexType>
                    <all>
                        <element name="text" type="xsd:string"/>
                    </all>
                </complexType>
            </element>
        </schema>
    </types>

    <message name="MossinRequest">
        <part name="body" element="tns:MossinRequest"/>
    </message>

    <message name="MossinResponse">
        <part name="body" element="tns:MossinResponse"/>
    </message>

    <portType name="MossinPortType">
        <operation name="GetResult">
            <input message="tns:MossinRequest"/>
            <output message="tns:MossinResponse"/>
        </operation>
    </portType>

    <plnk:partnerLinkType name="MossinPartnerLinkType">
        <plnk:role name="Provider" portType="tns:MossinPortType"/>
    </plnk:partnerLinkType>

</definitions>

Error:
15:25:49,872 | DEBUG | 6740...@qtp1-0 | HttpComponent            |
emix.common.AsyncBaseLifeCycle  653 | Created correlation id:
ID:155.35.129.168-12383707a38-11:2
15:25:49,872 | DEBUG | 6740...@qtp1-0 | ConsumerProcessor        |
p.processors.ConsumerProcessor  172 | Suspending continuation for exchange:
ID:155.35.129.168-12383707a38-11:2
15:25:49,872 | DEBUG | pool-6-thread-3 | OdeService               |
org.apache.ode.jbi.OdeService   225 | invokeOde() JBI
exchangeId=ID:155.35.129.168-12383707a38-11:2
endpoint={http://servicemix.apache.org/mossin}MossinService:soap
operation={urn:/mossin.wsdl}GetResult
15:25:49,872 | DEBUG | pool-6-thread-3 | BpelEngineImpl           |
ode.bpel.engine.BpelEngineImpl  255 | Routed: svcQname
{http://servicemix.apache.org/mossin}MossinService -->
BpelProcess[{urn:/moss.bpel}Moss-3]
15:25:49,872 | DEBUG | pool-6-thread-3 | ServiceMixMapper         |
de.jbi.msgmap.ServiceMixMapper   59 | isRecognized() message: <?xml
version="1.0" encoding="UTF-8"?>
<GetResult xmlns="urn:/mossin.wsdl"
  xmlns:soap="http://www.w3.org/2003/05/soap-envelope";
  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
  <text1>a</text1>
  <text2>a</text2>
  <text3>a</text3>
  <text4>a</text4>
  <text5>a</text5>
</GetResult>

15:25:49,872 | DEBUG | pool-6-thread-3 | ServiceMixMapper         |
de.jbi.msgmap.ServiceMixMapper   95 | no part data for body -- unrecognized.
15:25:49,887 | ERROR | pool-6-thread-3 | OdeService               |
org.apache.ode.jbi.OdeService   239 | Could not find a mapper for request
message for JBI MEX ID:155.35.129.168-12383707a38-11:2; ODE MEX
hqejbhcnphr4ke2s3vxwk6 is failed. 15:25:49,887 | DEBUG | pool-6-thread-3 | OdeService |
org.apache.ode.jbi.OdeService   272 | Rolling back ODE MEX
{MyRoleMex#hqejbhcnphr4ke2s3vxwk6 [Client
ID:155.35.129.168-12383707a38-11:2] calling
{http://servicemix.apache.org/mossin}MossinService.GetResult(...)}
15:25:49,887 | ERROR | pool-6-thread-3 | OdeService               |
org.apache.ode.jbi.OdeService   151 | Error invoking ODE.
org.apache.ode.jbi.msgmap.MessageTranslationException: Could not find a
mapper for request message for JBI MEX ID:155.35.129.168-12383707a38-11:2;
ODE MEX hqejbhcnphr4ke2s3vxwk6 is failed. at org.apache.ode.jbi.OdeService.invokeOde(OdeService.java:240)
        at 
org.apache.ode.jbi.OdeService.onJbiMessageExchange(OdeService.java:148)
        at
org.apache.ode.jbi.JbiMessageExchangeEventRouter.onJbiMessageExchange(JbiMessageExchangeEventRouter.java:67)
        at org.apache.ode.jbi.Receiver$1.run(Receiver.java:179)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

Reply via email to