Hi,
There is no simple way to do it, since the soap binding message or jbi binding message are based on the wsdl, you need do the transform according to the wsdl model.
Freeman

brijesh wrote:
Hi Freeman, thanks for the response i need to send a return message as "<sample>this is sample xml</sample>" from servicemix-bean to client through servicemix-bc, following is code snippet for this
.......................
InOut inOut = (InOut)exchange; NormalizedMessage normalizedMessage = inOut.getInMessage(); //String outMessage = processXml(normalizedMessage); String outMessage ="<sample>this is sample xml</sample>"; normalizedMessage.setContent(new StringSource(outMessage)); MessageUtil.transferInToOut(inOut, inOut); channel.send(inOut);
..................

is there any utility in MessageUtil to convert this plan xml content to soap
binding message or jbi binding message????
regards

Brijesh N K







Freeman Fang wrote:
Hi,

Cxf bc expect soap binding message or jbi binding message, but the message "<sample>this is sample xml</sample>" from your bean is invalid for the cxf bc.

Freeman

brijesh wrote:
hello,
I am calling servicemix-bean through cxf-bc, but i am getting soap fault
as
follows
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Server</faultcode>
         <faultstring>Message wrapper element is '{}sample' but expected
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'</faultstring>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>


code for service-bean as follows
public class ContractSchemaDataMapper implements MessageExchangeListener
{

    @Resource
    private DeliveryChannel channel;
    private static final Log logger =
LogFactory.getLog(ContractSchemaDataMapper.class);

    public void onMessageExchange(MessageExchange exchange) throws
MessagingException {
        
if (exchange.getStatus() == ExchangeStatus.ACTIVE) { logger.debug("## Received exchange with status ACTIVE: " + exchange); System.out.println("## Received exchange with status ACTIVE: " +
exchange);
InOut inOut = (InOut)exchange; NormalizedMessage normalizedMessage = inOut.getInMessage(); //String outMessage = processXml(normalizedMessage); String outMessage ="<sample>this is sample xml</sample>"; normalizedMessage.setContent(new StringSource(outMessage)); MessageUtil.transferInToOut(inOut, inOut); channel.send(inOut); } else{ logger.debug("## Received exchange but status not ACTIVE: " + exchange); }
    }
  }

and the stack trace as follows
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Message wrapper element is '{}sample'
but
expected '{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'
        at
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interceptor.java:103)
        at
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interceptor.java:62)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
        at
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
        at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
        at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:278)
        at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:252)
        at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:757)
        at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
        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:502)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:840)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:657)
        at
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:377)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
        at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:497)
Caused by: java.lang.Exception: Message wrapper element is '{}sample' but
expected '{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'
        ... 21 more




Any idea on this ,
regards

Brijesh N K




Reply via email to