You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by ben1729 <bm...@scottlogic.co.uk> on 2012/07/05 15:38:42 UTC
"Could not find conduit initiator for address" using SOAP-JMS
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.morganstanley.msci.poc.workflow"></context:component-scan>
<bean
class="org.springframework.osgi.extensions.annotation.ServiceReferenceInjectionBeanPostProcessor"
/>
<jaxws:client id="UserServiceJAXWS"
serviceClass="com.morganstanley.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.morganstanley.msci.poc.msci-poc-userservice-jaxws:0.0.1.SNAPSHOT]
at
com.morganstanley.msci.poc.workflow.impl.Test1WorkflowGetUserListProcessor.process(Test1WorkflowGetUserListProcessor.java:39)[228:com.morganstanley.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-tp5715548.html
Sent from the Camel - Users mailing list archive at Nabble.com.