Please try snapshot version and give results: http://people.apache.org/~rr/APACHE_ODE_1.X/org/apache/ode/ode-jbi/1.3.4-SNAPSHOT/
Also, please provide a version of ODE you used. 2009/11/5 LeeCK <[email protected]>: > > ODE fails to find a mapper for request message when the request message is an > empty element <userSearch/>. > > It works when request message looks like > <userSearch><userloginname/></userSearch>. > > Why is that? See below for the log messages and wsdl definition. > > WSDL: > <wsdl:types> > <xsd:schema targetNamespace="urn:/connector.wsdl" > xmlns:tns="urn:/connector.wsdl" > elementFormDefault="qualified"> > <xsd:element name="userSearch"> > <xsd:complexType> > <xsd:sequence> > <xsd:element name="userloginname" type="xsd:string" > minOccurs="0" maxOccurs="1"/> > <xsd:element name="username" type="xsd:string" > minOccurs="0" maxOccurs="1"/> > <xsd:element name="useremail" type="xsd:string" > minOccurs="0" maxOccurs="1"/> > <xsd:element name="usernotes" type="xsd:string" > minOccurs="0" maxOccurs="1"/> > <xsd:element name="groupname" type="xsd:string" > minOccurs="0" maxOccurs="1"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > </xsd:schema> > </wsdl:types> > > <!-- Search message - user --> > <wsdl:message name="userSearchRequest"> > <wsdl:part name="body" element="tns:userSearch"/> > </wsdl:message> > <wsdl:message name="userSearchResponse"> > <wsdl:part name="body" element="tns:users"/> > </wsdl:message> > > <wsdl:portType name="ConnectoPortType"> > <wsdl:operation name="searchuser"> > <wsdl:input message="tns:userSearchRequest" /> > <wsdl:output message="tns:userSearchResponse" /> > </wsdl:operation> > </wsdl:portType> > > LOG: > 13:18:01,198 | DEBUG | pool-flow.seda.OdeBpelEngine-thread-39 | SedaQueue > | .jbi.nmr.flow.seda.SedaQueue$1 132 | > org.apache.servicemix.jbi.nmr.flow.seda.sedaqueu...@536740 dequeued > exchange: InOut[ > id: ID:155.35.129.168-124c65af77c-15:17 > status: Active > role: provider > service: {urn:/connector.wsdl}UserService > endpoint: userport > operation: {urn:/connector.wsdl}searchuser > in: <?xml version="1.0" encoding="UTF-8"?><q0:userSearch > xmlns:q0="urn:/connector.wsdl"/> > ] > 13:18:01,198 | DEBUG | Thread-13 | DeliveryChannelImpl | > .messaging.DeliveryChannelImpl 282 | Accepting > ID:155.35.129.168-124c65af77c-15:17 in DeliveryChannel{OdeBpelEngine} > 13:18:01,198 | DEBUG | pool-6-thread-1 | OdeService | > org.apache.ode.jbi.OdeService 225 | invokeOde() JBI > exchangeId=ID:155.35.129.168-124c65af77c-15:17 > endpoint={urn:/connector.wsdl}UserService:userport > operation={urn:/connector.wsdl}searchuser > 13:18:01,198 | DEBUG | pool-6-thread-1 | ServiceMixMapper | > de.jbi.msgmap.ServiceMixMapper 59 | isRecognized() message: <?xml > version="1.0" encoding="UTF-8"?> > <q0:userSearch/> > > 13:18:01,214 | DEBUG | pool-6-thread-1 | ServiceMixMapper | > de.jbi.msgmap.ServiceMixMapper 101 | element part body does not contain > element {urn:/connector.wsdl}userSearch -- unrecognized > 13:18:01,214 | ERROR | pool-6-thread-1 | OdeService | > org.apache.ode.jbi.OdeService 239 | Could not find a mapper for request > message for JBI MEX ID:155.35.129.168-124c65af77c-15:17; ODE MEX > hqejbhcnphr4q8un46iics is failed. > 13:18:01,214 | DEBUG | pool-6-thread-1 | OdeService | > org.apache.ode.jbi.OdeService 272 | Rolling back ODE MEX > {MyRoleMex#hqejbhcnphr4q8un46iics [Client > ID:155.35.129.168-124c65af77c-15:17] calling > {urn:/connector.wsdl}UserService.searchuser(...)} > 13:18:01,214 | ERROR | pool-6-thread-1 | 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-124c65af77c-15:17; > ODE MEX hqejbhcnphr4q8un46iics 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) > 13:18:01,214 | DEBUG | pool-6-thread-1 | DeliveryChannelImpl | > .messaging.DeliveryChannelImpl 426 | Send > ID:155.35.129.168-124c65af77c-15:17 in DeliveryChannel{OdeBpelEngine} > 13:18:01,214 | DEBUG | pool-6-thread-1 | SecuredBroker | > mix.jbi.security.SecuredBroker 66 | send exchange with secure broker > 13:18:01,214 | DEBUG | pool-6-thread-1 | SedaFlow | > emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send > 13:18:01,214 | DEBUG | pool-flow.seda.OdeBpelEngine-thread-40 | SedaQueue > | .jbi.nmr.flow.seda.SedaQueue$1 132 | > org.apache.servicemix.jbi.nmr.flow.seda.sedaqueu...@fff4a8 dequeued > exchange: InOut[ > id: ID:155.35.129.168-124c65af77c-15:17 > status: Error > role: consumer > service: {urn:/connector.wsdl}UserService > endpoint: userport > operation: {urn:/connector.wsdl}searchuser > in: <?xml version="1.0" encoding="UTF-8"?><q0:userSearch > xmlns:q0="urn:/connector.wsdl"/> > error: org.apache.ode.jbi.msgmap.MessageTranslationException: Could not > find a mapper for request message for JBI MEX > ID:155.35.129.168-124c65af77c-15:17; ODE MEX hqejbhcnphr4q8un46iics is > failed. > ] > -- > View this message in context: > http://old.nabble.com/ODE-could-not-find-a-mapper-for-request-message-with-empty-element-tp26225649p26225649.html > Sent from the Apache Ode User mailing list archive at Nabble.com. > > Regards, -- Rafał Rusin http://www.touk.pl http://top.touk.pl http://people.apache.org/~rr/
