You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by LeeCK <le...@yahoo.com> on 2009/12/15 06:36:33 UTC
org.apache.servicemix.jbi.messaging.InOnlyImpl cannot be cast to
javax.jbi.messaging.InOut
Hi,
I am having trouble calling a webservice method that has no output. I am
using Servicemix 3.3.1 with ODE 1.3.4 SNAPSHOT. Please help. Thanks.
WSDL:
<wsdl:types>
<xs:schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://pojo.ws.jcs.test.com">
<xs:element name="addstudent">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="studentid"
nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="studentname"
nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="addstudentRequest">
<wsdl:part name="parameters" element="ns:addstudent"/>
</wsdl:message>
<wsdl:portType name="AddServicePortType">
<wsdl:operation name="addstudent">
<wsdl:input message="ns:addstudentRequest"
wsaw:Action="urn:addstudent"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AddServiceSoap12Binding"
type="ns:AddServicePortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<wsdl:operation name="addstudent">
<soap12:operation soapAction="urn:addstudent" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
LOG:
14:34:32,604 | ERROR | pool-flow.seda.servicemix-cxf-bc-thread-1 |
CxfBcComponent | emix.common.AsyncBaseLifeCycle 537 | Error
processing exchange InOnly[
id: ID:155.35.129.168-12590649523-28:0
status: Active
role: provider
service: {http://pojo.ws.jcs.test.com}AddService
endpoint: AddServiceHttpSoap12Endpoint
operation: {http://pojo.ws.jcs.test.com}addstudent
in: <?xml version="1.0" encoding="UTF-8"?><message
xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msgns="http://pojo.ws.jcs.test.com" type="msgns:addstudentRequest"
version="1.0"><part><addstudent xmlns="http://pojo.ws.jcs.test.com">
<tns:studentid
xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentid>
<tns:studentname
xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentname>
</addstudent></part></message>
]
javax.jbi.messaging.MessagingException: Fault not supported
at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
at
org.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:261)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
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)
14:34:32,604 | DEBUG | pool-flow.seda.servicemix-cxf-bc-thread-1 | SedaFlow
| emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
14:34:32,604 | DEBUG | pool-flow.seda.servicemix-cxf-bc-thread-2 | SedaQueue
| .jbi.nmr.flow.seda.SedaQueue$1 132 |
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1da15c4 dequeued
exchange: InOnly[
id: ID:155.35.129.168-12590649523-28:0
status: Error
role: consumer
service: {http://pojo.ws.jcs.test.com}AddService
endpoint: AddServiceHttpSoap12Endpoint
operation: {http://pojo.ws.jcs.test.com}addstudent
in: <?xml version="1.0" encoding="UTF-8"?><message
xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msgns="http://pojo.ws.jcs.test.com" type="msgns:addstudentRequest"
version="1.0"><part><addstudent xmlns="http://pojo.ws.jcs.test.com">
<tns:studentid
xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentid>
<tns:studentname
xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentname>
</addstudent></part></message>
error: javax.jbi.messaging.MessagingException: Fault not supported
]
14:34:32,619 | ERROR | pool-6-thread-4 | Receiver |
org.apache.ode.jbi.Receiver$1 181 | Error processing JBI message.
java.lang.ClassCastException: org.apache.servicemix.jbi.messaging.InOnlyImpl
cannot be cast to javax.jbi.messaging.InOut
at
org.apache.ode.jbi.OdeConsumer.onJbiMessageExchange(OdeConsumer.java:168)
at
org.apache.ode.jbi.JbiMessageExchangeEventRouter.onJbiMessageExchange(JbiMessageExchangeEventRouter.java:44)
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)
--
View this message in context: http://old.nabble.com/org.apache.servicemix.jbi.messaging.InOnlyImpl-cannot-be-cast-to-javax.jbi.messaging.InOut-tp26789731p26789731.html
Sent from the Apache Ode User mailing list archive at Nabble.com.
Re: org.apache.servicemix.jbi.messaging.InOnlyImpl cannot be cast
to javax.jbi.messaging.InOut
Posted by LeeCK <le...@yahoo.com>.
Yes. It only happens when there's an error returned. I've opened a ticket for
this issue. See https://issues.apache.org/jira/browse/ODE-740
Thanks!
Rafal Rusin wrote:
>
> This happens when you use Robust In Only message exchange pattern and
> when an error is returned for in-only request.
> ODE assumes that when there's an error returned, jbiMex has to be in-out.
> } else if (jbiMex.getStatus() == ExchangeStatus.ERROR) {
> inOutDone((InOut) jbiMex);
> outFailure((InOut) jbiMex);
> } else if (jbiMex.getStatus() == ExchangeStatus.DONE) {
>
> Using robust in-only IMO is not a good idea, so I suggest to modify
> your WSDL operations to in-out or handle errors in some other way.
> Currently ODE 1.X doesn't really support robust in-only.
> ODE trunk has a bug https://issues.apache.org/jira/browse/ODE-464 ,
> which is somewhat related to this problem.
> I think you can open ticket for it and add ODE-464 as related issue.
>
> 2009/12/15 LeeCK <le...@yahoo.com>:
>>
>> Hi,
>>
>> I am having trouble calling a webservice method that has no output. I am
>> using Servicemix 3.3.1 with ODE 1.3.4 SNAPSHOT. Please help. Thanks.
>>
>> WSDL:
>> <wsdl:types>
>> <xs:schema attributeFormDefault="qualified"
>> elementFormDefault="qualified"
>> targetNamespace="http://pojo.ws.jcs.test.com">
>> <xs:element name="addstudent">
>> <xs:complexType>
>> <xs:sequence>
>> <xs:element minOccurs="0" name="studentid"
>> nillable="true" type="xs:string"/>
>> <xs:element minOccurs="0" name="studentname"
>> nillable="true" type="xs:string"/>
>> </xs:sequence>
>> </xs:complexType>
>> </xs:element>
>> </xs:schema>
>> </wsdl:types>
>> <wsdl:message name="addstudentRequest">
>> <wsdl:part name="parameters" element="ns:addstudent"/>
>> </wsdl:message>
>> <wsdl:portType name="AddServicePortType">
>> <wsdl:operation name="addstudent">
>> <wsdl:input message="ns:addstudentRequest"
>> wsaw:Action="urn:addstudent"/>
>> </wsdl:operation>
>> </wsdl:portType>
>> <wsdl:binding name="AddServiceSoap12Binding"
>> type="ns:AddServicePortType">
>> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
>> style="document"/>
>> <wsdl:operation name="addstudent">
>> <soap12:operation soapAction="urn:addstudent"
>> style="document"/>
>> <wsdl:input>
>> <soap12:body use="literal"/>
>> </wsdl:input>
>> </wsdl:operation>
>> </wsdl:binding>
>>
>> LOG:
>> 14:34:32,604 | ERROR | pool-flow.seda.servicemix-cxf-bc-thread-1 |
>> CxfBcComponent | emix.common.AsyncBaseLifeCycle 537 | Error
>> processing exchange InOnly[
>> id: ID:155.35.129.168-12590649523-28:0
>> status: Active
>> role: provider
>> service: {http://pojo.ws.jcs.test.com}AddService
>> endpoint: AddServiceHttpSoap12Endpoint
>> operation: {http://pojo.ws.jcs.test.com}addstudent
>> in: <?xml version="1.0" encoding="UTF-8"?><message
>> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msgns="http://pojo.ws.jcs.test.com" type="msgns:addstudentRequest"
>> version="1.0"><part><addstudent xmlns="http://pojo.ws.jcs.test.com">
>> <tns:studentid
>> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentid>
>> <tns:studentname
>> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentname>
>>
>> </addstudent></part></message>
>> ]
>> javax.jbi.messaging.MessagingException: Fault not supported
>> at
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
>> at
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
>> at
>> org.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
>> at
>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:261)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>> at
>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>> at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>> at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>> at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>> at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>> 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)
>> 14:34:32,604 | DEBUG | pool-flow.seda.servicemix-cxf-bc-thread-1 |
>> SedaFlow
>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>> 14:34:32,604 | DEBUG | pool-flow.seda.servicemix-cxf-bc-thread-2 |
>> SedaQueue
>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1da15c4 dequeued
>> exchange: InOnly[
>> id: ID:155.35.129.168-12590649523-28:0
>> status: Error
>> role: consumer
>> service: {http://pojo.ws.jcs.test.com}AddService
>> endpoint: AddServiceHttpSoap12Endpoint
>> operation: {http://pojo.ws.jcs.test.com}addstudent
>> in: <?xml version="1.0" encoding="UTF-8"?><message
>> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msgns="http://pojo.ws.jcs.test.com" type="msgns:addstudentRequest"
>> version="1.0"><part><addstudent xmlns="http://pojo.ws.jcs.test.com">
>> <tns:studentid
>> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentid>
>> <tns:studentname
>> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentname>
>>
>> </addstudent></part></message>
>> error: javax.jbi.messaging.MessagingException: Fault not supported
>> ]
>> 14:34:32,619 | ERROR | pool-6-thread-4 | Receiver |
>> org.apache.ode.jbi.Receiver$1 181 | Error processing JBI message.
>> java.lang.ClassCastException:
>> org.apache.servicemix.jbi.messaging.InOnlyImpl
>> cannot be cast to javax.jbi.messaging.InOut
>> at
>> org.apache.ode.jbi.OdeConsumer.onJbiMessageExchange(OdeConsumer.java:168)
>> at
>> org.apache.ode.jbi.JbiMessageExchangeEventRouter.onJbiMessageExchange(JbiMessageExchangeEventRouter.java:44)
>> 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)
>>
>> --
>> View this message in context:
>> http://old.nabble.com/org.apache.servicemix.jbi.messaging.InOnlyImpl-cannot-be-cast-to-javax.jbi.messaging.InOut-tp26789731p26789731.html
>> Sent from the Apache Ode User mailing list archive at Nabble.com.
>>
>>
>
>
>
> --
> Rafał Rusin
> http://rrusin.blogspot.com
> http://www.touk.pl
> http://top.touk.pl
>
>
--
View this message in context: http://old.nabble.com/org.apache.servicemix.jbi.messaging.InOnlyImpl-cannot-be-cast-to-javax.jbi.messaging.InOut-tp26789731p26819889.html
Sent from the Apache Ode User mailing list archive at Nabble.com.
Re: org.apache.servicemix.jbi.messaging.InOnlyImpl cannot be cast to
javax.jbi.messaging.InOut
Posted by Rafal Rusin <ra...@gmail.com>.
This happens when you use Robust In Only message exchange pattern and
when an error is returned for in-only request.
ODE assumes that when there's an error returned, jbiMex has to be in-out.
} else if (jbiMex.getStatus() == ExchangeStatus.ERROR) {
inOutDone((InOut) jbiMex);
outFailure((InOut) jbiMex);
} else if (jbiMex.getStatus() == ExchangeStatus.DONE) {
Using robust in-only IMO is not a good idea, so I suggest to modify
your WSDL operations to in-out or handle errors in some other way.
Currently ODE 1.X doesn't really support robust in-only.
ODE trunk has a bug https://issues.apache.org/jira/browse/ODE-464 ,
which is somewhat related to this problem.
I think you can open ticket for it and add ODE-464 as related issue.
2009/12/15 LeeCK <le...@yahoo.com>:
>
> Hi,
>
> I am having trouble calling a webservice method that has no output. I am
> using Servicemix 3.3.1 with ODE 1.3.4 SNAPSHOT. Please help. Thanks.
>
> WSDL:
> <wsdl:types>
> <xs:schema attributeFormDefault="qualified"
> elementFormDefault="qualified"
> targetNamespace="http://pojo.ws.jcs.test.com">
> <xs:element name="addstudent">
> <xs:complexType>
> <xs:sequence>
> <xs:element minOccurs="0" name="studentid"
> nillable="true" type="xs:string"/>
> <xs:element minOccurs="0" name="studentname"
> nillable="true" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="addstudentRequest">
> <wsdl:part name="parameters" element="ns:addstudent"/>
> </wsdl:message>
> <wsdl:portType name="AddServicePortType">
> <wsdl:operation name="addstudent">
> <wsdl:input message="ns:addstudentRequest"
> wsaw:Action="urn:addstudent"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="AddServiceSoap12Binding"
> type="ns:AddServicePortType">
> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
> style="document"/>
> <wsdl:operation name="addstudent">
> <soap12:operation soapAction="urn:addstudent" style="document"/>
> <wsdl:input>
> <soap12:body use="literal"/>
> </wsdl:input>
> </wsdl:operation>
> </wsdl:binding>
>
> LOG:
> 14:34:32,604 | ERROR | pool-flow.seda.servicemix-cxf-bc-thread-1 |
> CxfBcComponent | emix.common.AsyncBaseLifeCycle 537 | Error
> processing exchange InOnly[
> id: ID:155.35.129.168-12590649523-28:0
> status: Active
> role: provider
> service: {http://pojo.ws.jcs.test.com}AddService
> endpoint: AddServiceHttpSoap12Endpoint
> operation: {http://pojo.ws.jcs.test.com}addstudent
> in: <?xml version="1.0" encoding="UTF-8"?><message
> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msgns="http://pojo.ws.jcs.test.com" type="msgns:addstudentRequest"
> version="1.0"><part><addstudent xmlns="http://pojo.ws.jcs.test.com">
> <tns:studentid
> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentid>
> <tns:studentname
> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentname>
> </addstudent></part></message>
> ]
> javax.jbi.messaging.MessagingException: Fault not supported
> at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
> at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:261)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
> at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> 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)
> 14:34:32,604 | DEBUG | pool-flow.seda.servicemix-cxf-bc-thread-1 | SedaFlow
> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
> 14:34:32,604 | DEBUG | pool-flow.seda.servicemix-cxf-bc-thread-2 | SedaQueue
> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1da15c4 dequeued
> exchange: InOnly[
> id: ID:155.35.129.168-12590649523-28:0
> status: Error
> role: consumer
> service: {http://pojo.ws.jcs.test.com}AddService
> endpoint: AddServiceHttpSoap12Endpoint
> operation: {http://pojo.ws.jcs.test.com}addstudent
> in: <?xml version="1.0" encoding="UTF-8"?><message
> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msgns="http://pojo.ws.jcs.test.com" type="msgns:addstudentRequest"
> version="1.0"><part><addstudent xmlns="http://pojo.ws.jcs.test.com">
> <tns:studentid
> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentid>
> <tns:studentname
> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentname>
> </addstudent></part></message>
> error: javax.jbi.messaging.MessagingException: Fault not supported
> ]
> 14:34:32,619 | ERROR | pool-6-thread-4 | Receiver |
> org.apache.ode.jbi.Receiver$1 181 | Error processing JBI message.
> java.lang.ClassCastException: org.apache.servicemix.jbi.messaging.InOnlyImpl
> cannot be cast to javax.jbi.messaging.InOut
> at
> org.apache.ode.jbi.OdeConsumer.onJbiMessageExchange(OdeConsumer.java:168)
> at
> org.apache.ode.jbi.JbiMessageExchangeEventRouter.onJbiMessageExchange(JbiMessageExchangeEventRouter.java:44)
> 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)
>
> --
> View this message in context: http://old.nabble.com/org.apache.servicemix.jbi.messaging.InOnlyImpl-cannot-be-cast-to-javax.jbi.messaging.InOut-tp26789731p26789731.html
> Sent from the Apache Ode User mailing list archive at Nabble.com.
>
>
--
Rafał Rusin
http://rrusin.blogspot.com
http://www.touk.pl
http://top.touk.pl
Re: org.apache.servicemix.jbi.messaging.InOnlyImpl cannot be cast
to javax.jbi.messaging.InOut
Posted by Tammo van Lessen <tv...@gmail.com>.
Hi,
do both Ode and the corresponding binding component refer to the
identical WSDL?
Tammo
On 15.12.2009 06:36, LeeCK wrote:
>
> Hi,
>
> I am having trouble calling a webservice method that has no output. I am
> using Servicemix 3.3.1 with ODE 1.3.4 SNAPSHOT. Please help. Thanks.
>
> WSDL:
> <wsdl:types>
> <xs:schema attributeFormDefault="qualified"
> elementFormDefault="qualified"
> targetNamespace="http://pojo.ws.jcs.test.com">
> <xs:element name="addstudent">
> <xs:complexType>
> <xs:sequence>
> <xs:element minOccurs="0" name="studentid"
> nillable="true" type="xs:string"/>
> <xs:element minOccurs="0" name="studentname"
> nillable="true" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="addstudentRequest">
> <wsdl:part name="parameters" element="ns:addstudent"/>
> </wsdl:message>
> <wsdl:portType name="AddServicePortType">
> <wsdl:operation name="addstudent">
> <wsdl:input message="ns:addstudentRequest"
> wsaw:Action="urn:addstudent"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="AddServiceSoap12Binding"
> type="ns:AddServicePortType">
> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
> style="document"/>
> <wsdl:operation name="addstudent">
> <soap12:operation soapAction="urn:addstudent" style="document"/>
> <wsdl:input>
> <soap12:body use="literal"/>
> </wsdl:input>
> </wsdl:operation>
> </wsdl:binding>
>
> LOG:
> 14:34:32,604 | ERROR | pool-flow.seda.servicemix-cxf-bc-thread-1 |
> CxfBcComponent | emix.common.AsyncBaseLifeCycle 537 | Error
> processing exchange InOnly[
> id: ID:155.35.129.168-12590649523-28:0
> status: Active
> role: provider
> service: {http://pojo.ws.jcs.test.com}AddService
> endpoint: AddServiceHttpSoap12Endpoint
> operation: {http://pojo.ws.jcs.test.com}addstudent
> in: <?xml version="1.0" encoding="UTF-8"?><message
> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msgns="http://pojo.ws.jcs.test.com" type="msgns:addstudentRequest"
> version="1.0"><part><addstudent xmlns="http://pojo.ws.jcs.test.com">
> <tns:studentid
> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentid>
> <tns:studentname
> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentname>
> </addstudent></part></message>
> ]
> javax.jbi.messaging.MessagingException: Fault not supported
> at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
> at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:261)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
> at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> 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)
> 14:34:32,604 | DEBUG | pool-flow.seda.servicemix-cxf-bc-thread-1 | SedaFlow
> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
> 14:34:32,604 | DEBUG | pool-flow.seda.servicemix-cxf-bc-thread-2 | SedaQueue
> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1da15c4 dequeued
> exchange: InOnly[
> id: ID:155.35.129.168-12590649523-28:0
> status: Error
> role: consumer
> service: {http://pojo.ws.jcs.test.com}AddService
> endpoint: AddServiceHttpSoap12Endpoint
> operation: {http://pojo.ws.jcs.test.com}addstudent
> in: <?xml version="1.0" encoding="UTF-8"?><message
> xmlns="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msgns="http://pojo.ws.jcs.test.com" type="msgns:addstudentRequest"
> version="1.0"><part><addstudent xmlns="http://pojo.ws.jcs.test.com">
> <tns:studentid
> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentid>
> <tns:studentname
> xmlns:tns="http://pojo.ws.jcs.test.com">a</tns:studentname>
> </addstudent></part></message>
> error: javax.jbi.messaging.MessagingException: Fault not supported
> ]
> 14:34:32,619 | ERROR | pool-6-thread-4 | Receiver |
> org.apache.ode.jbi.Receiver$1 181 | Error processing JBI message.
> java.lang.ClassCastException: org.apache.servicemix.jbi.messaging.InOnlyImpl
> cannot be cast to javax.jbi.messaging.InOut
> at
> org.apache.ode.jbi.OdeConsumer.onJbiMessageExchange(OdeConsumer.java:168)
> at
> org.apache.ode.jbi.JbiMessageExchangeEventRouter.onJbiMessageExchange(JbiMessageExchangeEventRouter.java:44)
> 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)
>
--
Tammo van Lessen - http://www.taval.de