Hi all, I am (attempting) to use SOAP over JMS within Fuse ESB (v4.4.1-fuse-06-03). I have a web service in one bundle that I wish to call from another. The service exposes a simple getAll() method which return a list of Users. I have had the wsdl/Java code running as a conventional web service over http (and haven't changed that code at all).
Service beans.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:cxf="http://camel.apache.org/schema/cxf" xmlns:soap="http://cxf.apache.org/bindings/soap" xmlns:context="http://www.springframework.org/schema/context" xmlns:jms="http://cxf.apache.org/transports/jms" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-jms.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /> <context:component-scan base-package="com.XXX.msci.poc.users.jaxws"></context:component-scan> <bean class="org.apache.camel.component.cxf.transport.CamelTransportFactory"> <property name="bus" ref="cxf" /> <property name="camelContext" ref="camelContext" /> <property name="transportIds"> <list> <value>http://cxf.apache.org/transports/camel</value> </list> </property> </bean> <jaxws:endpoint id="userServiceJAXWS" address="camel://direct:UserServiceJAXWS" wsdlLocation="wsdl/userservice.wsdl" serviceName="ns:UserServiceJAXWSService" endpointName="ns:UserServiceJAXWSPort" implementor="com.XXX.msci.poc.users.jaxws.UserServiceJAXWSImpl" xmlns:ns="http://jaxws.users.poc.msci.XXX.com/" /> <camel:camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:queue:UserServiceQueue" /> <to uri="direct:UserServiceJAXWS" /> </route> </camel:camelContext> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="brokerURL" value="tcp://localhost:61616" /> </bean> <bean class="org.springframework.osgi.extensions.annotation.ServiceReferenceInjectionBeanPostProcessor" /> </beans> Client beans.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:cxf="http://camel.apache.org/schema/cxf" xmlns:soap="http://cxf.apache.org/bindings/soap" xmlns:context="http://www.springframework.org/schema/context" xmlns:jms="http://cxf.apache.org/transports/jms" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-jms.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /> <camel:camelContext xmlns="http://camel.apache.org/schema/spring"> <contextScan /> </camel:camelContext> <bean class="org.apache.camel.component.cxf.transport.CamelTransportFactory"> <property name="bus" ref="cxf" /> <property name="camelContext" ref="camelContext" /> <property name="transportIds"> <list> <value>http://cxf.apache.org/transports/camel</value> </list> </property> </bean> <camel:camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring" /> <context:component-scan base-package="com.XXX.msci.poc.workflow"></context:component-scan> <bean class="org.springframework.osgi.extensions.annotation.ServiceReferenceInjectionBeanPostProcessor" /> <jaxws:client id="UserServiceJAXWS" serviceClass="com.XXX.msci.poc.users.jaxws.UserServiceJAXWS" address="camel:activemq:queue:UserServiceQueue" /> <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> <property name="brokerURL" value="tcp://localhost:61616" /> </bean> </beans> First off, am I on the right lines? The service deploys OK (no errors in logs etc.) which is a good start I suppose. However when I come to call it, I get this error: javax.xml.ws.soap.SOAPFaultException: Could not find conduit initiator for address: camel:activemq:queue:UserServiceQueue and transport: http://schemas.xmlsoap.org/soap/http at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at $Proxy122.getAll(Unknown Source)[229:com.XXX.msci.poc.msci-poc-userservice-jaxws:0.0.1.SNAPSHOT] at com.XXX.msci.poc.workflow.impl.Test1WorkflowGetUserListProcessor.process(Test1WorkflowGetUserListProcessor.java:39)[228:com.XXX.msci.poc.msci-poc-test1workflow:0.0.1.SNAPSHOT] at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.fabric.FabricTraceProcessor.process(FabricTraceProcessor.java:81)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:319)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:210)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:304)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.Pipeline.process(Pipeline.java:116)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.Pipeline.process(Pipeline.java:79)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)[88:org.apache.camel.camel-core:2.8.0.fuse-05-03] at org.apache.servicemix.camel.nmr.ServiceMixConsumer.process(ServiceMixConsumer.java:79)[103:org.apache.servicemix.camel.component:4.4.1.fuse-06-03] at org.apache.servicemix.nmr.core.InternalEndpointWrapper.process(InternalEndpointWrapper.java:86)[98:org.apache.servicemix.nmr.core:1.5.1.fuse-05-03] at org.apache.servicemix.nmr.core.ChannelImpl.process(ChannelImpl.java:271)[98:org.apache.servicemix.nmr.core:1.5.1.fuse-05-03] at org.apache.servicemix.nmr.core.ChannelImpl$1.run(ChannelImpl.java:227)[98:org.apache.servicemix.nmr.core:1.5.1.fuse-05-03] at org.apache.servicemix.executors.impl.ExecutorImpl$1.run(ExecutorImpl.java:64)[102:servicemix-utils:1.5.1.fuse-05-03] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_31] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_31] at java.lang.Thread.run(Thread.java:662)[:1.6.0_31] Caused by: java.lang.RuntimeException: Could not find conduit initiator for address: camel:activemq:queue:UserServiceQueue and transport: http://schemas.xmlsoap.org/soap/http at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:227)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:236)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:88)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.endpoint.UpfrontConduitSelector.prepare(UpfrontConduitSelector.java:61)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.endpoint.ClientImpl.prepareConduitSelector(ClientImpl.java:843)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:526)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:461)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:364)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:317)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)[126:org.apache.cxf.bundle:2.4.3.fuse-03-02] ... 43 more Please help me Camel gurus! Ben -- View this message in context: http://camel.465427.n5.nabble.com/Could-not-find-conduit-initiator-for-address-using-SOAP-JMS-tp5715549.html Sent from the Camel - Users mailing list archive at Nabble.com.