You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by Freeman Fang <fr...@gmail.com> on 2008/07/01 06:56:33 UTC
Re: CXF routing issues with same servicenames
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
>>>
>>>
>>
>>
>
>
Re: CXF routing issues with same servicenames
Posted by Freeman Fang <fr...@gmail.com>.
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
>>>>
>>>
>>>
>>
>>
>
>