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 <[email protected]>:
>>
>> 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.sedaqueu...@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.