You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Guillaume Nodet (JIRA)" <ji...@apache.org> on 2008/10/07 09:42:52 UTC
[jira] Updated: (SM-1431) CXF (se proxy) routing issues with same
servicenames
[ https://issues.apache.org/activemq/browse/SM-1431?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Nodet updated SM-1431:
--------------------------------
Fix Version/s: servicemix-cxf-se-2008.01
> CXF (se proxy) routing issues with same servicenames
> -----------------------------------------------------
>
> Key: SM-1431
> URL: https://issues.apache.org/activemq/browse/SM-1431
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-cxf-se
> Affects Versions: 3.3
> Environment: standalone client
> { (ESB) ======> cxf bc consumer===> cxf se (the se has proxy
> of cxf bc provider endpoint) =========> cxf bc provider(endpoint, endpointStd) (/ESB) }
> ===========> standalone server
> Reporter: Brice
> Assignee: Freeman Fang
> Fix For: 3.2.2, 3.3, servicemix-cxf-se-2008.01
>
> Attachments: 20080630-BUG-routingServiceWithSeveralInterfaces-calculatrice.zip, 20080630-calculator-client-and-Server.zip, FirstChoicePolicy.java
>
>
> See service mix website for the full forum discussion thread: http://www.nabble.com/CXF-routing-issues-with-same-servicenames-ts18157214.html
> ------------------------------------------
> Summary
> ------------------------------------------
> Hi all
> I keep working on my proxy, I have a new problem.
> I have one external service with 3 porttypes (wsdl with 3 interfaces/3 endpoints).
> To access it, I created three internal endpoints with CXF BC provider.
> one service=myservice, interface=myinterface1, endpoint=myendpoint1
> service=myservice, interface=myinterface2, endpoint=myendpoint2
> My proxy (and so do I btw) wants to send a message to service=myservice, interface=myinterface2, endpoint=myendpoint2
> but in fact it goes to service=myservice, interface=myinterface1, endpoint=myendpoint1.
> I checked in my JaxWsClientPoroxy, and in the BindingOperationInfo oi, I have my service/endpoints that has a name for the endpoint (by the way it is a Qname, but it is my enpdpointName + my namespace).
> In the MessageExchange sent by the messagesenderInterceptor, i can see the tables containing the endpoint (javax.xml.ws.wsdl.port = myendpoint2)
> Then in the NMR I read the servicename, interfaceName... AND after the "resolveAdress", i get a WRONG endpointName (endpoint1 for example). Then the cxf provider reads the binding and doesn't find my operation (interface2) amont the interface1 operations.
> I tried to remove the "serviceName" from the proxy configuration and leave only the interfaceName so the interfacename will be resolved (btw why not adding a routing method with [servicename + interface] or just checking if the interface is implemented by the endpoint chosen?), but xbean.xml and its XSD doesn't allow to remove the service.
> I don't know what to do (except removing the 2 other endpoints but I will need them, and I can't change the WSDL).
> -*****************************************************************
> ******************************************************************************************
> .well I don't know yet how to create a test file, I am trying to understand how you do with your tests in the components.
> But I can send you my sources for SA creation and my calculator server and client (the libs are in my M2_REPO, see classpath).
> To see how it fails:
> Deploy the sa, launch the server then client.
> The Exception thrown speaks about java.lang.nullpointerexception
> The messsage header intercepted has those routing information:
> interface: calculatorExt
> service: calculatorExtEndpoint
> endpoint:endpointStd
> While in the xbean of my servicemix se, the proxy property requires:
> interface: calculatorExt
> service: calculatorExtEndpoint
> endpoint:endpoint
> ******************************************************************************************
> ******************************************************************************************
> 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
> ******************************************************************************************
> ******************************************************************************************
> 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
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.