0 Replies Latest reply on Jul 30, 2012 6:41 AM by Fergus Boydell

    Camel CXF Producer failing to create Endpoint

    Fergus Boydell Newbie



      I'm currently using Fuse ESB for a number of Routes accepting HTTP connections and then requesting a CXF Producer Endpoint for SOAP Services. The routes are deployed as separate OSGI Bundles.


      When I first deploy the bundles, they all work perfectly and successfully request the SOAP Services and respond as expected.  However, after a seemingly random period of time the routes start throwing the following errors (not all at once, some will work, others with fail):


      org.apache.camel.FailedToCreateProducerException: Failed to create Producer for endpoint: Endpoint[cxf://bean:SOAPEndpoint]. Reason: org.apache.cxf.service.factory.ServiceConstructionException: Service class com.a.b.c.theServiceClass.TheServicePortType does not implement the changeContract method.


      With the endpoint defined as (I've changed the namespace and other values):

          <cxf:cxfEndpoint id="SOAPEndpoint"

              address="http://www.test.com"        serviceClass="com.a.b.c.theServiceClass.TheServicePortType"

              endpointName="s:TheServicePort" serviceName="s:TheService"

              xmlns:s="http://a.com/b/c/theServiceClass" />


      This error will then be always thrown until I do an osgi:update on the bundle. From looking at the log files there is nothing logged between a successful request and a failed request implying any changes. Also the method which is supposedly not implemented is not a method which is even called, just another which is specified within the WSDL.


      Does anyone know why this might be happening? And what can be done to resolve this? Does it matter that I am not pointing to the WSDL file? Since I'm including all the generated WSDL2JAVA classes I assumed that including a wsdlURL  was not necessary.


      Thanks in advance!