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.

Reply via email to