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.