camel route and cxf endpoint
valdar Mar 11, 2010 11:21 AMHi all,
I'm using FUSE ESB 4.2 (the last version), this is my scenario:
one boundle with cxfse:endpoints and ws implementations:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aouc="http://www.aou-careggi.toscana.it/eai" xmlns:osgi="http://camel.apache.org/schema/osgi" xmlns:osgix="http://www.springframework.org/schema/osgi-compendium" xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://camel.apache.org/schema/osgi http://camel.apache.org/schema/osgi/camel-osgi.xsd http://www.springframework.org/schema/osgi-compendium http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd http://servicemix.apache.org/cxfse/1.0 http://servicemix.apache.org/cxfse/1.0/servicemix-cxf-se.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml"></import> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"></import> <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml"></import> <cxfse:endpoint> <cxfse:pojo> <bean class="it.unifi.dsi.aouc.adapters.ConcretePatientAdapter1"></bean> </cxfse:pojo> </cxfse:endpoint> <cxfse:endpoint> <cxfse:pojo> <bean class="it.unifi.dsi.aouc.adapters.ConcretePatientAdapter2"></bean> </cxfse:pojo> </cxfse:endpoint> <cxfse:endpoint> <cxfse:pojo> <bean class="it.unifi.dsi.aouc.idm.PatientIdentityManagerImpl"></bean> </cxfse:pojo> </cxfse:endpoint> <bean class="org.apache.servicemix.common.osgi.EndpointExporter"></bean> </beans>
one bundle with the camel's routs:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aouc="http://www.aou-careggi.toscana.it/eai" xmlns:osgi="http://camel.apache.org/schema/osgi" xmlns:osgix="http://www.springframework.org/schema/osgi-compendium" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://camel.apache.org/schema/osgi http://camel.apache.org/schema/osgi/camel-osgi.xsd http://www.springframework.org/schema/osgi-compendium http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml"></import> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"></import> <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml"></import> <osgi:camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="timer://myTimer?fixedRate=true&period=2000"></from> <bean ref="notificationsPoller" method="transform"></bean> <to uri="activemq:topic:patientAdapter.notify.in"></to> </route> <route> <from uri="activemq:topic:patientAdapter.notify.in"></from> <to uri="jbi:endpoint:http://www.aou-careggi.toscana.it/eai/concrete-patient-adapter1/patient-adapter-soap"></to> <to uri="activemq:topic:patientAdapter.notify.out.part"></to> </route> </osgi:camelContext> <bean id="notificationsPoller" class="it.unifi.dsi.aouc.NotificationsPoller"></bean> <!-- Factories --> <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent"> <property name="connectionFactory"> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="failover:(tcp://localhost:61616)"></property> </bean> </property> </bean> <bean class="org.apache.servicemix.common.osgi.EndpointExporter"></bean> </beans>
but I get the following exception:
17:11:44,952 | ERROR | -cxf-se-thread-2 | CxfSeComponent | icemix.common.AsyncBaseLifeCycle 480 | Error processing exchange org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@1bc46bd java.lang.RuntimeException: Could not find destination factory for transport http://schemas.xmlsoap.org/soap/http at org.apache.cxf.binding.soap.SoapTransportFactory.getDestination(SoapTransportFactory.java:76) at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:90) at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:69) at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:106) at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:411) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478) at org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) 17:11:44,954 | ERROR | tenerContainer-1 | DefaultErrorHandler | rg.apache.camel.processor.Logger 248 | Failed delivery for exchangeId: ID:Travelmate7520-42962-1268320949095-2:15:1:1:1. Exhausted after delivery attempt: 1 caught: java.lang.RuntimeException: Could not find destination factory for transport http://schemas.xmlsoap.org/soap/http java.lang.RuntimeException: Could not find destination factory for transport http://schemas.xmlsoap.org/soap/http at org.apache.cxf.binding.soap.SoapTransportFactory.getDestination(SoapTransportFactory.java:76) at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:90) at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:69) at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:106) at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:411) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478) at org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) 17:11:44,968 | ERROR | tenerContainer-1 | EndpointMessageListener | rg.apache.camel.processor.Logger 248 | Caused by: [org.apache.camel.RuntimeCamelException - java.lang.RuntimeException: Could not find destination factory for transport http://schemas.xmlsoap.org/soap/http] org.apache.camel.RuntimeCamelException: java.lang.RuntimeException: Could not find destination factory for transport http://schemas.xmlsoap.org/soap/http at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1055) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:104) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.RuntimeException: Could not find destination factory for transport http://schemas.xmlsoap.org/soap/http at org.apache.cxf.binding.soap.SoapTransportFactory.getDestination(SoapTransportFactory.java:76) at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:90) at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:69) at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:106) at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:411) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478) at org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) ... 1 more 17:11:44,969 | WARN | tenerContainer-1 | DefaultMessageListenerContainer | AbstractMessageListenerContainer 646 | Execution of JMS message listener failed org.apache.camel.RuntimeCamelException: java.lang.RuntimeException: Could not find destination factory for transport http://schemas.xmlsoap.org/soap/http at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1055) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:104) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.RuntimeException: Could not find destination factory for transport http://schemas.xmlsoap.org/soap/http at org.apache.cxf.binding.soap.SoapTransportFactory.getDestination(SoapTransportFactory.java:76) at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:90) at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:69) at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:106) at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:411) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478) at org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) ... 1 more
Basically I want to call via camel route a cxf endpoint passing a message from a jms topic.
Tnx for any help.
Andrea.