You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Ron Gavlin <rg...@yahoo.com> on 2008/05/14 08:25:11 UTC
servicemix-cxf-bc provider NPE invoking cxf-wsdl-first sample
Using the current 3.2 branch, I have hot deployed the cxf-wsdl-first sample. In a separate flow, I have a file:poller -> eip:pipeline(transformer = cxfbc:provider) -> file:sender. My input file for this flow contains:
<jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" version="1.0">
<jbi:part>
<tns:GetPerson xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">
<tns:personId>world</tns:personId>
</tns:GetPerson>
</jbi:part>
</jbi:message>
When this flow is processed, the cxfbc:provider throws the following NPE:
May 14, 2008 1:59:44 AM org.apache.cxf.transport.jbi.JBITransportFactory setDeliveryChannel
INFO: configuring DeliveryChannel: org.apache.servicemix.common.EndpointDeliveryChannel@d5714b
May 14, 2008 1:59:45 AM org.apache.cxf.transport.jbi.JBITransportFactory setDeliveryChannel
INFO: configuring DeliveryChannel: org.apache.servicemix.common.EndpointDeliveryChannel@d5714b
java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:157)
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:730)
at org.apache.cxf.service.model.BindingInfo.getOperation(BindingInfo.java:126)
at org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:93)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1988)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1824)
at org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:201)
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:172)
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)
The problem is that the CxfBcProviderMessageObserver's messageExchange has a null operation. On the cxfbc:provider, how is the operation supposed to be set? I do not see it as a configurable property on the cxfbc:provider.
Thanks in advance for your assistance.
- Ron
Re: servicemix-cxf-bc provider NPE invoking cxf-wsdl-first sample
Posted by Freeman Fang <fr...@gmail.com>.
Hi Ron,
You can't set operation for the cxf bc provider since cxf bc provider
may provide more than one operations, it's normally interface in the
wsdl has several operations
But you can set operation in the eip exchange-target
something like
<eip:targets>
<eip:exchange-target service="front:GetCustomerService"
interface="front:GetCustomerPortType" operation="front:GetCustomer"/>
</eip:targets>
Freeman
Ron Gavlin wrote:
> Using the current 3.2 branch, I have hot deployed the cxf-wsdl-first sample. In a separate flow, I have a file:poller -> eip:pipeline(transformer = cxfbc:provider) -> file:sender. My input file for this flow contains:
>
> <jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" version="1.0">
> <jbi:part>
> <tns:GetPerson xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">
> <tns:personId>world</tns:personId>
> </tns:GetPerson>
> </jbi:part>
> </jbi:message>
>
> When this flow is processed, the cxfbc:provider throws the following NPE:
>
> May 14, 2008 1:59:44 AM org.apache.cxf.transport.jbi.JBITransportFactory setDeliveryChannel
> INFO: configuring DeliveryChannel: org.apache.servicemix.common.EndpointDeliveryChannel@d5714b
> May 14, 2008 1:59:45 AM org.apache.cxf.transport.jbi.JBITransportFactory setDeliveryChannel
> INFO: configuring DeliveryChannel: org.apache.servicemix.common.EndpointDeliveryChannel@d5714b
> java.lang.NullPointerException
> at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:157)
> at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:730)
> at org.apache.cxf.service.model.BindingInfo.getOperation(BindingInfo.java:126)
> at org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:93)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1988)
> at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1824)
> at org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:201)
> 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:172)
> 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)
>
> The problem is that the CxfBcProviderMessageObserver's messageExchange has a null operation. On the cxfbc:provider, how is the operation supposed to be set? I do not see it as a configurable property on the cxfbc:provider.
>
> Thanks in advance for your assistance.
>
> - Ron
>
>
>