3 Replies Latest reply on Feb 15, 2011 12:23 AM by davsclaus

    Camel to CXF SOAP Call - WSDL fails

    valig003

      Hello,

       

      I have a CXF SOAP service (WSDL-first) defined using Spring.  This service works great and performs quite well.  Since it hits a database, I have a requirement to throttle web service usage to limit the impact on the database.  This seemed to be a perfect fit for the built-in Camel "throttle" route with the idea being that the initial request from Jetty is throttled by Camel and then routed to the jaxws/CXF service. 

       

      However, I've found no examples that use the throttle, especially none where the throttle is defined in the Spring configuration.  The way I have gotten it working, SOAP calls succeed and are correctly throttled, however WSDL calls fail.  So if I hit http://localhost/cxf/MyService with a SOAP call, all is good and the SOAP delivery is throttled.  However if I try to view the WSDL at http://localhost/cxf/MyService?wsdl

      everything breaks and the error is:

       

      -


      org.apache.cxf.interceptor.Fault: No such operation: cxf (HTTP GET PATH_INFO: /cxf/CourseService)

      at org.apache.cxf.interceptor.URIMappingInterceptor.handleMessage(URIMappingInterceptor.java:88)82:org.apache.cxf.bundle:2.3.2.fuse-00-00

      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)82:org.apache.cxf.bundle:2.3.2.fuse-00-00

      at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)82:org.apache.cxf.bundle:2.3.2.fuse-00-00

      at org.apache.camel.component.cxf.transport.CamelDestination.incoming(CamelDestination.java:150)108:org.apache.camel.camel-cxf:2.6.0.fuse-00-00

      at org.apache.camel.component.cxf.transport.CamelDestination$ConsumerProcessor.process(CamelDestination.java:177)108:org.apache.camel.camel-cxf:2.6.0.fuse-00-00

      at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

      at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

      at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:104)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

      at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:272)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

      at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:98)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

      at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

      at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)98:org.apache.camel.camel-core:2.6.0.fuse-00-00

       

      -


      (This is a different error than was shown in Fuse 4.3.0_03)

       

      This is a deal-breaker since I must be able to provide the WSDL endpoint to potential consumers.  I've spent a lot of time on this and have not gotten any closer to making the WSDL call succeed, though I seem to be very good at making the SOAP call fail.  Please help!

       

      I've also tried switching the "direct" calls to "nmr", but this fails with null pointer exceptions for both the SOAP and WSDL calls.

       

      Environment:

      Fuse ESB 4.3.1

      Java 1.6.0_17

      Windows XP (development)

       

      Spring Config:

       

       

       

      Edited by: valig003 on Feb 11, 2011 6:36 PM

       

      Edited by: valig003 on Feb 11, 2011 6:37 PM