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