That's because cxf bc consumer expect jbi binding message, so you need
add jbi wrapper, like the outgoing message I show you in previous mail.
Freeman
brijesh wrote:
Hi Ashwin,
thanks for the response,
following is error message i am getting now,
return document i am passing to servicmix-cxf-bc as out message is valid
against wsdl response datatype , i am wonderging y is it looking for jbi
namespace
below is stack trace
Jan 5, 2009 11:30:08 PM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Message wrapper element is
'{com.ekaplus.integration.common.document.response}Response' but expected
'{http://java.sun.com/xml/ns/jbi/w
sdl-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
'{com.ekaplus.integration.common.document.response}Response' but expected
'{http://java.sun.com/xml/ns/jbi/wsd
l-11-wrapper}message'
i am sending back following xml document , which is valid against wsdl
reponse type
<Response xmlns="com.ekaplus.integration.common.document.response">
<ResultType>SUCCCESS</ResultType>
<Messages>
<Description>this is result type</Description>
<Description>Another is result type</Description>
</Messages>
</Response>
bc xmbean configuration as follows
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
xmlns:eka="http://ekaplus.com/contract"
xsi:schemaLocation="http://servicemix.apache.org/cxfbc/1.0
http://servicemix.apache.org/schema/servicemix-cxfbc-3.2.3.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<cxfbc:consumer wsdl="classpath:contract.wsdl"
service="eka:createContractService"
targetService="eka:contractBeanRouter"
/>
regards
Brijesh N K
Ashwin Karpe wrote:
Hi Brijesh,
Looks like your soap payload is incorrectly formatted. It could be that
the cxf-bc receives SOAP1.2 while the expected payload is SOAP1.1 or the
SOAP settings are incorrectly applied.
The payload being forwarded to the smx-bean is badly broken or mangled at
that point. While the bean expects a JBI message in the Message exchange,
it receives a broken piece of payload. Can you please attach a copy of
your payload, cxf-bc and smx-bean settings.
The payload being sent to the bean is badly mangled or incorrrectly
formatted/processed for some reason.
Cheers,
Ashwin...
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