ODE could not find a mapper for request message with empty element

View: New views
3 Messages — Rating Filter:   Alert me  

ODE could not find a mapper for request message with empty element

by LeeCK () :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

ODE fails to find a mapper for request message when the request message is an empty element <userSearch/>. I am using ODE 1.2

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.SedaQueue$1@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.SedaQueue$1@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.
]

Re: ODE could not find a mapper for request message with empty element

by Rafal Rusin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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 <leechin_kong@...>:

>
> 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.SedaQueue$1@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.SedaQueue$1@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/

Re: ODE could not find a mapper for request message with empty element

by LeeCK :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I am using ODE 1.2. Ode 1.3.4 fixes the issue. May I know when is the official release of this version?

Thanks,
Lee

Rafal Rusin wrote:
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 <leechin_kong@yahoo.com>:
>
> 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.SedaQueue$1@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.SedaQueue$1@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/