You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by brijesh <br...@gmail.com> on 2009/04/29 07:29:56 UTC
illegal exchange status: done
hello,
Following is my work flow
|->smx-bean1
cxf-bc->smx-eip--|->smx-bean2
|->cxf-bc(provider)
cxf-bc(provider) is asynchronised service call(there is no out param in
service)
when i am executing gives following error ,
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>illegal exchange status: done</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
complete error stack as follows
javax.jbi.messaging.MessagingException: illegal exchange status: done
at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432)
at
org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88)
at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:254)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
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:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
INFO - PhaseInterceptorChain - Interceptor has thrown exception,
unwinding now
org.apache.cxf.interceptor.Fault: illegal exchange status: done
at
org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:722)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:89)
at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:295)
at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:258)
at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Caused by: javax.jbi.messaging.MessagingException: illegal exchange status:
done
at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432)
at
org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88)
at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:254)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
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:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
cxf-provider xbean config as follows
<cxfbc:provider wsdl="classpath:EkaPoImportProcess.wsdl"
locationURI="http://oracleebs.ekablr.com:80/orabpel/default/EkaPoImportProcess/1.10"
service="imp:EkaPoImportProcess"
endpoint="EkaPoImportProcessPort"
interfaceName="imp:EkaPoImportProcess"/>
following is wsdl.
<?xml version="1.0" encoding="UTF-8"?>
<definitions
name="EkaPoImportProcess"
targetNamespace="http://xmlns.oracle.com/EkaPoImportProcess"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://xmlns.oracle.com/EkaPoImportProcess"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:client="http://xmlns.oracle.com/EkaPoImportProcess"
>
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://xmlns.oracle.com/EkaPoImportProcess"
schemaLocation="EkaPoImportProcess.xsd"/>
</schema>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import
namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing"
schemaLocation="http://oracleebs.ekablr.com:80/orabpel/xmllib/ws-addressing.xsd"/>
</schema>
</types>
<message name="EkaPoImportProcessRequestMessage">
<part name="payload"
element="tns:EkaPoImportProcessProcessRequest"/>
</message>
<message name="EkaPoImportProcessResponseMessage">
<part name="payload"
element="tns:EkaPoImportProcessProcessResponse"/>
</message>
<message name="WSARelatesToHeader">
<part name="RelatesTo" element="wsa:RelatesTo"/>
</message>
<message name="WSAReplyToHeader">
<part name="ReplyTo" element="wsa:ReplyTo"/>
</message>
<message name="WSAMessageIDHeader">
<part name="MessageID" element="wsa:MessageID"/>
</message>
<portType name="EkaPoImportProcess">
<operation name="initiate">
<input message="tns:EkaPoImportProcessRequestMessage"/>
</operation>
</portType>
<portType name="EkaPoImportProcessCallback">
<operation name="onResult">
<input message="tns:EkaPoImportProcessResponseMessage"/>
</operation>
</portType>
<binding name="EkaPoImportProcessCallbackBinding"
type="tns:EkaPoImportProcessCallback">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="onResult">
<soap:operation style="document" soapAction="onResult"/>
<input>
<soap:header message="tns:WSARelatesToHeader"
part="RelatesTo" use="literal" encodingStyle=""/>
<soap:body use="literal"/>
</input>
</operation>
</binding>
<binding name="EkaPoImportProcessBinding" type="tns:EkaPoImportProcess">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="initiate">
<soap:operation style="document" soapAction="initiate"/>
<input>
<soap:header message="tns:WSAReplyToHeader" part="ReplyTo"
use="literal" encodingStyle=""/>
<soap:header message="tns:WSAMessageIDHeader"
part="MessageID" use="literal" encodingStyle=""/>
<soap:body use="literal"/>
</input>
</operation>
</binding>
<service name="EkaPoImportProcess">
<port name="EkaPoImportProcessPort"
binding="tns:EkaPoImportProcessBinding">
<soap:address
location="http://oracleebs.ekablr.com:80/orabpel/default/EkaPoImportProcess/1.10"/>
</port>
</service>
<service name="EkaPoImportProcessCallbackService">
<port name="EkaPoImportProcessCallbackPort"
binding="tns:EkaPoImportProcessCallbackBinding">
<soap:address location="http://set.by.caller"/>
</port>
</service>
<plnk:partnerLinkType name="EkaPoImportProcess">
<plnk:role name="EkaPoImportProcessRequester">
<plnk:portType name="tns:EkaPoImportProcessCallback"/>
</plnk:role>
<plnk:role name="EkaPoImportProcessProvider">
<plnk:portType name="tns:EkaPoImportProcess"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
--
View this message in context: http://www.nabble.com/illegal-exchange-status%3A-done-tp23290783p23290783.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: illegal exchange status: done
Posted by brijesh <br...@gmail.com>.
can anybody help me on this ?
thanks
Brijesh N K
brijesh wrote:
>
> hello,
>
> Following is my work flow
>
> |->smx-bean1
> cxf-bc->smx-eip--|->smx-bean2
> |->cxf-bc(provider)
>
> cxf-bc(provider) is asynchronised service call(there is no out param in
> service)
>
> when i am executing gives following error ,
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <soap:Fault>
> <faultcode>soap:Server</faultcode>
> <faultstring>illegal exchange status: done</faultstring>
> </soap:Fault>
> </soap:Body>
> </soap:Envelope>
>
> complete error stack as follows
>
> javax.jbi.messaging.MessagingException: illegal exchange status: done
> at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432)
> at
> org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:254)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
> 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:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> INFO - PhaseInterceptorChain - Interceptor has thrown exception,
> unwinding now
> org.apache.cxf.interceptor.Fault: illegal exchange status: done
> at
> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:722)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:89)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:295)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:258)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> at
> org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
> at
> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
> at
> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
> Caused by: javax.jbi.messaging.MessagingException: illegal exchange
> status: done
> at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432)
> at
> org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:254)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
> 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:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
>
>
>
>
> cxf-provider xbean config as follows
>
> <cxfbc:provider wsdl="classpath:EkaPoImportProcess.wsdl"
>
> locationURI="http://oracleebs.ekablr.com:80/orabpel/default/EkaPoImportProcess/1.10"
> service="imp:EkaPoImportProcess"
> endpoint="EkaPoImportProcessPort"
> interfaceName="imp:EkaPoImportProcess"/>
>
> following is wsdl.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions
> name="EkaPoImportProcess"
> targetNamespace="http://xmlns.oracle.com/EkaPoImportProcess"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:tns="http://xmlns.oracle.com/EkaPoImportProcess"
> xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"
> xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:client="http://xmlns.oracle.com/EkaPoImportProcess"
> >
> <types>
> <schema xmlns="http://www.w3.org/2001/XMLSchema">
> <import namespace="http://xmlns.oracle.com/EkaPoImportProcess"
> schemaLocation="EkaPoImportProcess.xsd"/>
> </schema>
> <schema xmlns="http://www.w3.org/2001/XMLSchema">
> <import
> namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing"
> schemaLocation="http://oracleebs.ekablr.com:80/orabpel/xmllib/ws-addressing.xsd"/>
> </schema>
> </types>
> <message name="EkaPoImportProcessRequestMessage">
> <part name="payload"
> element="tns:EkaPoImportProcessProcessRequest"/>
> </message>
> <message name="EkaPoImportProcessResponseMessage">
> <part name="payload"
> element="tns:EkaPoImportProcessProcessResponse"/>
> </message>
> <message name="WSARelatesToHeader">
> <part name="RelatesTo" element="wsa:RelatesTo"/>
> </message>
> <message name="WSAReplyToHeader">
> <part name="ReplyTo" element="wsa:ReplyTo"/>
> </message>
> <message name="WSAMessageIDHeader">
> <part name="MessageID" element="wsa:MessageID"/>
> </message>
> <portType name="EkaPoImportProcess">
> <operation name="initiate">
> <input message="tns:EkaPoImportProcessRequestMessage"/>
> </operation>
> </portType>
> <portType name="EkaPoImportProcessCallback">
> <operation name="onResult">
> <input message="tns:EkaPoImportProcessResponseMessage"/>
> </operation>
> </portType>
> <binding name="EkaPoImportProcessCallbackBinding"
> type="tns:EkaPoImportProcessCallback">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <operation name="onResult">
> <soap:operation style="document" soapAction="onResult"/>
> <input>
> <soap:header message="tns:WSARelatesToHeader"
> part="RelatesTo" use="literal" encodingStyle=""/>
> <soap:body use="literal"/>
> </input>
> </operation>
> </binding>
> <binding name="EkaPoImportProcessBinding"
> type="tns:EkaPoImportProcess">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <operation name="initiate">
> <soap:operation style="document" soapAction="initiate"/>
> <input>
> <soap:header message="tns:WSAReplyToHeader" part="ReplyTo"
> use="literal" encodingStyle=""/>
> <soap:header message="tns:WSAMessageIDHeader"
> part="MessageID" use="literal" encodingStyle=""/>
> <soap:body use="literal"/>
> </input>
> </operation>
> </binding>
> <service name="EkaPoImportProcess">
> <port name="EkaPoImportProcessPort"
> binding="tns:EkaPoImportProcessBinding">
> <soap:address
> location="http://oracleebs.ekablr.com:80/orabpel/default/EkaPoImportProcess/1.10"/>
> </port>
> </service>
> <service name="EkaPoImportProcessCallbackService">
> <port name="EkaPoImportProcessCallbackPort"
> binding="tns:EkaPoImportProcessCallbackBinding">
> <soap:address location="http://set.by.caller"/>
> </port>
> </service>
> <plnk:partnerLinkType name="EkaPoImportProcess">
> <plnk:role name="EkaPoImportProcessRequester">
> <plnk:portType name="tns:EkaPoImportProcessCallback"/>
> </plnk:role>
> <plnk:role name="EkaPoImportProcessProvider">
> <plnk:portType name="tns:EkaPoImportProcess"/>
> </plnk:role>
> </plnk:partnerLinkType>
> </definitions>
>
>
--
View this message in context: http://www.nabble.com/illegal-exchange-status%3A-done-tp23290783p23295148.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: illegal exchange status: done
Posted by brijesh <br...@gmail.com>.
thank JB for the respose, But i don't set the done status in my code,
following is bean code
public class MessageLogger implements MessageExchangeListener {
@Resource
private DeliveryChannel channel;
private static final Log logger =
LogFactory.getLog(MessageLogger.class);
public void onMessageExchange(MessageExchange exchange) throws
MessagingException {
if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
InOut inOut = (InOut)exchange;
NormalizedMessage normalizedMessage = inOut.getInMessage();
String outMessage = processXml(normalizedMessage);
//mapIds(inMessage);
System.out.println("## Sending message back exchange with status
ACTIVE:BeanLogger string " +outMessage);
normalizedMessage.setContent(new StringSource(outMessage));
MessageUtil.transferInToOut(inOut, inOut);
channel.send(inOut);
} else{
logger.debug("## Received exchange but status not ACTIVE: " +
exchange);
}
}
private String processXml(NormalizedMessage normalizedMessage)
throws MessagingException {
SourceTransformer sourceTransformer = new SourceTransformer();
String inMessage = "";
try {
inMessage = sourceTransformer.contentToString(normalizedMessage);
} catch (Exception e) {
throw new MessagingException(e);
}
System.out.println("intMessage::" + inMessage);
return inMessage;
}
}
thanks for the help,
Brijesh N K
Jean-Baptiste Onofré wrote:
>
> Do you have check if the smx-bean2 service doesn't done the exchange
> (using done(exchange) in the code) ?
> The problem is that the cxf-bc(provider) service receive an exchange
> with the status DONE, so it can't be processed.
>
> Regards
> JB
>
> brijesh wrote:
>> hello,
>>
>> Following is my work flow
>>
>> |->smx-bean1
>> cxf-bc->smx-eip--|->smx-bean2
>> |->cxf-bc(provider)
>>
>> cxf-bc(provider) is asynchronised service call(there is no out param in
>> service)
>>
>> when i am executing gives following error ,
>>
>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>> <soap:Body>
>> <soap:Fault>
>> <faultcode>soap:Server</faultcode>
>> <faultstring>illegal exchange status: done</faultstring>
>> </soap:Fault>
>> </soap:Body>
>> </soap:Envelope>
>>
>> complete error stack as follows
>>
>> javax.jbi.messaging.MessagingException: illegal exchange status: done
>> at
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626)
>> at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386)
>> at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432)
>> at
>> org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88)
>> at
>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:254)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
>> 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:650)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>> at java.lang.Thread.run(Thread.java:595)
>> INFO - PhaseInterceptorChain - Interceptor has thrown
>> exception,
>> unwinding now
>> org.apache.cxf.interceptor.Fault: illegal exchange status: done
>> at
>> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:722)
>> at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
>> at
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:89)
>> at
>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:295)
>> at
>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:258)
>> at
>> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
>> at
>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
>> at
>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>> at
>> org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
>> at
>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>> at org.mortbay.jetty.Server.handle(Server.java:324)
>> at
>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
>> at
>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
>> at
>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
>> at
>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
>> at
>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>> at
>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
>> Caused by: javax.jbi.messaging.MessagingException: illegal exchange
>> status:
>> done
>> at
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626)
>> at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386)
>> at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432)
>> at
>> org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88)
>> at
>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:254)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
>> 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:650)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>> at java.lang.Thread.run(Thread.java:595)
>>
>>
>>
>>
>> cxf-provider xbean config as follows
>>
>> <cxfbc:provider wsdl="classpath:EkaPoImportProcess.wsdl"
>>
>> locationURI="http://oracleebs.ekablr.com:80/orabpel/default/EkaPoImportProcess/1.10"
>> service="imp:EkaPoImportProcess"
>> endpoint="EkaPoImportProcessPort"
>> interfaceName="imp:EkaPoImportProcess"/>
>>
>> following is wsdl.
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <definitions
>> name="EkaPoImportProcess"
>> targetNamespace="http://xmlns.oracle.com/EkaPoImportProcess"
>> xmlns="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:tns="http://xmlns.oracle.com/EkaPoImportProcess"
>> xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"
>> xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>> xmlns:client="http://xmlns.oracle.com/EkaPoImportProcess"
>> >
>> <types>
>> <schema xmlns="http://www.w3.org/2001/XMLSchema">
>> <import
>> namespace="http://xmlns.oracle.com/EkaPoImportProcess"
>> schemaLocation="EkaPoImportProcess.xsd"/>
>> </schema>
>> <schema xmlns="http://www.w3.org/2001/XMLSchema">
>> <import
>> namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing"
>> schemaLocation="http://oracleebs.ekablr.com:80/orabpel/xmllib/ws-addressing.xsd"/>
>> </schema>
>> </types>
>> <message name="EkaPoImportProcessRequestMessage">
>> <part name="payload"
>> element="tns:EkaPoImportProcessProcessRequest"/>
>> </message>
>> <message name="EkaPoImportProcessResponseMessage">
>> <part name="payload"
>> element="tns:EkaPoImportProcessProcessResponse"/>
>> </message>
>> <message name="WSARelatesToHeader">
>> <part name="RelatesTo" element="wsa:RelatesTo"/>
>> </message>
>> <message name="WSAReplyToHeader">
>> <part name="ReplyTo" element="wsa:ReplyTo"/>
>> </message>
>> <message name="WSAMessageIDHeader">
>> <part name="MessageID" element="wsa:MessageID"/>
>> </message>
>> <portType name="EkaPoImportProcess">
>> <operation name="initiate">
>> <input message="tns:EkaPoImportProcessRequestMessage"/>
>> </operation>
>> </portType>
>> <portType name="EkaPoImportProcessCallback">
>> <operation name="onResult">
>> <input message="tns:EkaPoImportProcessResponseMessage"/>
>> </operation>
>> </portType>
>> <binding name="EkaPoImportProcessCallbackBinding"
>> type="tns:EkaPoImportProcessCallback">
>> <soap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"/>
>> <operation name="onResult">
>> <soap:operation style="document" soapAction="onResult"/>
>> <input>
>> <soap:header message="tns:WSARelatesToHeader"
>> part="RelatesTo" use="literal" encodingStyle=""/>
>> <soap:body use="literal"/>
>> </input>
>> </operation>
>> </binding>
>> <binding name="EkaPoImportProcessBinding"
>> type="tns:EkaPoImportProcess">
>> <soap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"/>
>> <operation name="initiate">
>> <soap:operation style="document" soapAction="initiate"/>
>> <input>
>> <soap:header message="tns:WSAReplyToHeader"
>> part="ReplyTo"
>> use="literal" encodingStyle=""/>
>> <soap:header message="tns:WSAMessageIDHeader"
>> part="MessageID" use="literal" encodingStyle=""/>
>> <soap:body use="literal"/>
>> </input>
>> </operation>
>> </binding>
>> <service name="EkaPoImportProcess">
>> <port name="EkaPoImportProcessPort"
>> binding="tns:EkaPoImportProcessBinding">
>> <soap:address
>> location="http://oracleebs.ekablr.com:80/orabpel/default/EkaPoImportProcess/1.10"/>
>> </port>
>> </service>
>> <service name="EkaPoImportProcessCallbackService">
>> <port name="EkaPoImportProcessCallbackPort"
>> binding="tns:EkaPoImportProcessCallbackBinding">
>> <soap:address location="http://set.by.caller"/>
>> </port>
>> </service>
>> <plnk:partnerLinkType name="EkaPoImportProcess">
>> <plnk:role name="EkaPoImportProcessRequester">
>> <plnk:portType name="tns:EkaPoImportProcessCallback"/>
>> </plnk:role>
>> <plnk:role name="EkaPoImportProcessProvider">
>> <plnk:portType name="tns:EkaPoImportProcess"/>
>> </plnk:role>
>> </plnk:partnerLinkType>
>> </definitions>
>>
>
>
--
View this message in context: http://www.nabble.com/illegal-exchange-status%3A-done-tp23290783p23307087.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: illegal exchange status: done
Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Do you have check if the smx-bean2 service doesn't done the exchange
(using done(exchange) in the code) ?
The problem is that the cxf-bc(provider) service receive an exchange
with the status DONE, so it can't be processed.
Regards
JB
brijesh wrote:
> hello,
>
> Following is my work flow
>
> |->smx-bean1
> cxf-bc->smx-eip--|->smx-bean2
> |->cxf-bc(provider)
>
> cxf-bc(provider) is asynchronised service call(there is no out param in
> service)
>
> when i am executing gives following error ,
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <soap:Fault>
> <faultcode>soap:Server</faultcode>
> <faultstring>illegal exchange status: done</faultstring>
> </soap:Fault>
> </soap:Body>
> </soap:Envelope>
>
> complete error stack as follows
>
> javax.jbi.messaging.MessagingException: illegal exchange status: done
> at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432)
> at
> org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:254)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
> 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:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> INFO - PhaseInterceptorChain - Interceptor has thrown exception,
> unwinding now
> org.apache.cxf.interceptor.Fault: illegal exchange status: done
> at
> org.apache.servicemix.cxfbc.CxfBcConsumer$JbiPostInvokerInterceptor.handleMessage(CxfBcConsumer.java:722)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:226)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:89)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:295)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:258)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
> Caused by: javax.jbi.messaging.MessagingException: illegal exchange status:
> done
> at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:626)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:386)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:432)
> at
> org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:88)
> at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:254)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
> 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:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
>
>
>
>
> cxf-provider xbean config as follows
>
> <cxfbc:provider wsdl="classpath:EkaPoImportProcess.wsdl"
>
> locationURI="http://oracleebs.ekablr.com:80/orabpel/default/EkaPoImportProcess/1.10"
> service="imp:EkaPoImportProcess"
> endpoint="EkaPoImportProcessPort"
> interfaceName="imp:EkaPoImportProcess"/>
>
> following is wsdl.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions
> name="EkaPoImportProcess"
> targetNamespace="http://xmlns.oracle.com/EkaPoImportProcess"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:tns="http://xmlns.oracle.com/EkaPoImportProcess"
> xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"
> xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:client="http://xmlns.oracle.com/EkaPoImportProcess"
> >
> <types>
> <schema xmlns="http://www.w3.org/2001/XMLSchema">
> <import namespace="http://xmlns.oracle.com/EkaPoImportProcess"
> schemaLocation="EkaPoImportProcess.xsd"/>
> </schema>
> <schema xmlns="http://www.w3.org/2001/XMLSchema">
> <import
> namespace="http://schemas.xmlsoap.org/ws/2003/03/addressing"
> schemaLocation="http://oracleebs.ekablr.com:80/orabpel/xmllib/ws-addressing.xsd"/>
> </schema>
> </types>
> <message name="EkaPoImportProcessRequestMessage">
> <part name="payload"
> element="tns:EkaPoImportProcessProcessRequest"/>
> </message>
> <message name="EkaPoImportProcessResponseMessage">
> <part name="payload"
> element="tns:EkaPoImportProcessProcessResponse"/>
> </message>
> <message name="WSARelatesToHeader">
> <part name="RelatesTo" element="wsa:RelatesTo"/>
> </message>
> <message name="WSAReplyToHeader">
> <part name="ReplyTo" element="wsa:ReplyTo"/>
> </message>
> <message name="WSAMessageIDHeader">
> <part name="MessageID" element="wsa:MessageID"/>
> </message>
> <portType name="EkaPoImportProcess">
> <operation name="initiate">
> <input message="tns:EkaPoImportProcessRequestMessage"/>
> </operation>
> </portType>
> <portType name="EkaPoImportProcessCallback">
> <operation name="onResult">
> <input message="tns:EkaPoImportProcessResponseMessage"/>
> </operation>
> </portType>
> <binding name="EkaPoImportProcessCallbackBinding"
> type="tns:EkaPoImportProcessCallback">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <operation name="onResult">
> <soap:operation style="document" soapAction="onResult"/>
> <input>
> <soap:header message="tns:WSARelatesToHeader"
> part="RelatesTo" use="literal" encodingStyle=""/>
> <soap:body use="literal"/>
> </input>
> </operation>
> </binding>
> <binding name="EkaPoImportProcessBinding" type="tns:EkaPoImportProcess">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <operation name="initiate">
> <soap:operation style="document" soapAction="initiate"/>
> <input>
> <soap:header message="tns:WSAReplyToHeader" part="ReplyTo"
> use="literal" encodingStyle=""/>
> <soap:header message="tns:WSAMessageIDHeader"
> part="MessageID" use="literal" encodingStyle=""/>
> <soap:body use="literal"/>
> </input>
> </operation>
> </binding>
> <service name="EkaPoImportProcess">
> <port name="EkaPoImportProcessPort"
> binding="tns:EkaPoImportProcessBinding">
> <soap:address
> location="http://oracleebs.ekablr.com:80/orabpel/default/EkaPoImportProcess/1.10"/>
> </port>
> </service>
> <service name="EkaPoImportProcessCallbackService">
> <port name="EkaPoImportProcessCallbackPort"
> binding="tns:EkaPoImportProcessCallbackBinding">
> <soap:address location="http://set.by.caller"/>
> </port>
> </service>
> <plnk:partnerLinkType name="EkaPoImportProcess">
> <plnk:role name="EkaPoImportProcessRequester">
> <plnk:portType name="tns:EkaPoImportProcessCallback"/>
> </plnk:role>
> <plnk:role name="EkaPoImportProcessProvider">
> <plnk:portType name="tns:EkaPoImportProcess"/>
> </plnk:role>
> </plnk:partnerLinkType>
> </definitions>
>