Hi Brice,
Finally, I reproduce the problem you encounter,
I get the exception as below
java.lang.NullPointerException
at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:171)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:585)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:536)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:490)
at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
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:168)
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)
It looks like a bug, would you please fill a jira to track it, and
append your testcase and our mail conversation?
Thanks
Freeman
Freeman Fang wrote:
Hi,
As you said, you encounter problem when send message from cxf se to
cxf bc provider, right?
But I encounter problem earlier from your attachment, the exception
thrown when from standalone cxf client to cxf bc consumer, the
stacktrace is
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: MEP
not found
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:199)
at $Proxy37.add(Unknown Source)
at
com.mycompany.brice.calculator.Calculator_Endpoint_Client.main(Calculator_Endpoint_Client.java:56)
Caused by: org.apache.cxf.binding.soap.SoapFault: MEP not found
at
org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.handleMessage(Soap12FaultInInterceptor.java:104)
at
org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.handleMessage(Soap12FaultInInterceptor.java:46)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
at
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
at
org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:65)
at
org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:449)
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.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:583)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178)
... 2 more
Did you see it before?
Freeman
Fullocto wrote:
Well in fact, i want to send to endpoint="endpoint" as specified in my
xbean.xml but unfortunately the message is sent to endpointStd.
Freeman Fang wrote:
Hi Brice,
In your proxy configuration
<cxfse:proxy service="calculatorExt:CalculatorExtEndpoint"
interfaceName="CalculatorExt" endpoint="endpoint" context="#context"
type="com.mycompany.brice.calculatorext.CalculatorExt" />
It works, right?
And you want send messa ge to endpointStd, so you specify the
endpoint="endpointStd", but that's not enough, also the type
attribute should be
"com.mycompany.brice.calculatorext.CalculatorExtStd", as I mentioned
int the previuse mail
"Also, you should specify the "type" attribute correctly, which
should be the client stub for the interface (portype in the wsdl)
you want to send message to. "
You can generate class
com.mycompany.brice.calculatorext.CalculatorExtStd from the wsdl
which have the CalculatorExtStd porttype.
Freeman
Fullocto wrote:
Freeman Fang wrote:
The wsdl you append in the attachment is the one you mentioned
have three endpoint?
No in fact I created a light version I can share on internet, and two
endpoints were enough to create the problem.
Freeman Fang wrote:
Do I understand your scenario correctly?
standalone client ======> cxf bc consumer===> cxf se (the se has
proxy of cxf bc provider) =========> cxf bc provider ===========>
standalone
Exactly
standalone client ======> cxf bc consumer===> cxf se (the se has
proxy of cxf bc provider endpoint1) =========> cxf bc
provider(endpoint1,
endpoint2) ===========> standalone
Actually, in my files endpoint1= endpoint, and endpoint2=endpointStd