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