Hi,

I just notice the error

'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper/}message' but expected
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'

which should be the root cause.

Please check your JBI message creation part, the namespace of "jbi" prefix should be

http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper

but not

http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper/

Best Regards

Freeman

crmuchin wrote:
I am trying to get the CXF BC working within my lwcontainer component, but
I'm having some problems, most likely due to my lack of webservices
experience. I am posting messages onto the NMR programatically, and then
reading them out of JMS within a lwcontainer for delivery to the outside
world. Everything seems to be working from the CXF BC side, however my
external CXF server doesn't seem to like the format of the message I'm
sending it. This might be due to the fact that I'm constructing the
jbi:message brute force via XSL. My webservice was created using CXF's
java2wsdl utility from the following 2 java source files.

WsMessageSink.java:

package com.initiatesystems.publisher;
public interface WsMessageSink
{
        void onMessage(String message);
}

WsMessageSinkImpl.java:

package com.initiatesystems.publisher;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class WsMessageSinkImpl implements WsMessageSink
{
        private static final Log log = 
LogFactory.getLog(WsMessageSinkImpl.class);
        public void onMessage(String message)
        {
                if (log.isDebugEnabled())
                {
                        log.debug("onMessage: " + message);
                }
        }
}


Below is the error I'm seeing from the CXF server:

Feb 14, 2008 1:11:55 AM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.NullPointerException
    at
org.apache.cxf.frontend.SimpleMethodDispatcher.getMethod(SimpleMethodDispatcher.java:96)
    at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:57)
    at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
    at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
    at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
    at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:208)
    at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
    at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:297)
    at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:243)
    at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:54)
    at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722)
    at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
    at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:730)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
Feb 14, 2008 1:11:55 AM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.NullPointerException
    at
org.apache.cxf.interceptor.FaultOutInterceptor.getFaultForClass(FaultOutInterceptor.java:128)
    at
org.apache.cxf.interceptor.FaultOutInterceptor.handleMessage(FaultOutInterceptor.java:61)
    at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:208)
    at
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
    at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:242)
    at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
    at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:297)
    at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:243)
    at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:54)
    at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722)
    at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
    at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:730)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)


The message being sent looks like this:

<?xml version='1.0' encoding='UTF-8'?>
<jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper/";
xmlns:tns="http://publisher.initiatesystems.com/"; type="tns:onMessage"
version="1.0">
<jbi:part>foobar</jbi:part>
</jbi:message>

And finally my WSDL:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="WsMessageSink"
targetNamespace="http://publisher.initiatesystems.com/";
xmlns:tns="http://publisher.initiatesystems.com/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
  <wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:tns="http://publisher.initiatesystems.com/";
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://publisher.initiatesystems.com/";>
<xsd:element name="onMessage" type="tns:onMessage"/>
<xsd:complexType name="onMessage">
<xsd:sequence>
<xsd:element minOccurs="0" name="arg0" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="onMessageResponse" type="tns:onMessageResponse"/>
<xsd:complexType name="onMessageResponse">
<xsd:sequence/>
</xsd:complexType>
</xsd:schema>
  </wsdl:types>
  <wsdl:message name="onMessage">
    <wsdl:part name="parameters" element="tns:onMessage">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="onMessageResponse">
    <wsdl:part name="parameters" element="tns:onMessageResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="WsMessageSinkPortType">
    <wsdl:operation name="onMessage">
      <wsdl:input name="onMessage" message="tns:onMessage">
    </wsdl:input>
      <wsdl:output name="onMessageResponse" message="tns:onMessageResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="WsMessageSinkSoapBinding"
type="tns:WsMessageSinkPortType">
    <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="onMessage">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="onMessage">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="onMessageResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="WsMessageSink">
    <wsdl:port name="WsMessageSinkPort"
binding="tns:WsMessageSinkSoapBinding">
      <soap:address location="http://localhost:9090/hello"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

I am also seeing this coming from stdout/stderr within my ServiceMix
container, but I suspect its a side effect of the CXF server errors:

 Feb 14, 2008 1:11:54 AM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
 INFO: Interceptor has thrown exception, unwinding now
 org.apache.cxf.interceptor.Fault: Message wrapper element is
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper/}message' but expected
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'
        at
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interceptor.java:67)
        at
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interceptor.java:50)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:208)
        at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:157)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
        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)
 Caused by: java.lang.Exception: Message wrapper element is
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper/}message' but expected
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'
        ... 14 more
 Feb 14, 2008 1:11:55 AM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
 INFO: Interceptor has thrown exception, unwinding now
 org.apache.cxf.interceptor.Fault: Message wrapper element is
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper/}message' but expected
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'
        at
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interceptor.java:67)
        at
org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interceptor.java:50)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:208)
        at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:157)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
        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)
 Caused by: java.lang.Exception: Message wrapper element is
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper/}message' but expected
'{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'
        ... 14 more
 java.lang.RuntimeException: Couldn't parse stream.
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.findBody(CxfBcProviderMessageObserver.java:195)
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.createXMLStreamReaderFromMessage(CxfBcProviderMessageObserver.java:172)
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:97)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1955)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
        at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:166)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
        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)
 Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
  at [row,col {unknown-source}]: [1,0]
        at
com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:661)
        at
com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2134)
        at
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2040)
        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
        at
org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:215)
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.findBody(CxfBcProviderMessageObserver.java:191)
        ... 15 more
 java.lang.RuntimeException: Couldn't parse stream.
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.findBody(CxfBcProviderMessageObserver.java:195)
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.createXMLStreamReaderFromMessage(CxfBcProviderMessageObserver.java:172)
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:97)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1955)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
        at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:166)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
        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)
 Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
  at [row,col {unknown-source}]: [1,0]
        at
com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:661)
        at
com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2134)
        at
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2040)
        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
        at
org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:215)
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.findBody(CxfBcProviderMessageObserver.java:191)
        ... 15 more




If anybody has suggestions or ideas what I'm doing wrong I would really
appreciate the help!

Thanks,
Craig M.

Reply via email to