You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by TheWinch <vi...@thalesgroup.com> on 2009/12/02 18:08:21 UTC

Classpath problem with camel-cxf and OSGi

Hi,

I'm trying to deploy dynamically endpoints using camel-cxf. I have an
example that works perfectly well in camel 2.0.0 standalone, and that does
not work in camel 2.0.0 deployed on SMX4 (code provided below).
I have read on forums that this might come from class-path issues. However I
can't see where it comes from. Could someone help ?

To deploy the endpoint I do:

// in Test:
public void doTest() { builder.deployEndpoint(); }
// in DynamicBuilder:
public void deployEndpoint() {
        CamelContext context = getContext();
        
        final String endpointUri = "cxf:" + "http://localhost:9000/service"
+ "?serviceClass=" + SERVICE_CLASS;        
        def = from( endpointUri );
        def.process( new CallbackProcessor() );
        context.addRouteDefinitions( Arrays.asList( def ) );
        context.startRoute( def );
}

This works OK in camel standalone, and in SMX4 this generates the following
error:

org.apache.camel.RuntimeCamelException: java.lang.RuntimeException: Could
not find destination factory for transport http://schemas.xmlsoap.org/soap/h
ttp
        at
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1011)
        at
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
        at
org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:469)
        at
org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
        at
org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
        at
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
        at
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
        at
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
        at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.finishRefresh(AbstractDelegatedExecutionApplicationCo
ntext.java:380)
        at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.ja
va:346)
        at
org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
        at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplication
Context.java:308)
        at
org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(Dependen
cyWaiterApplicationContextExecutor.java:138)
        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:118)
        at
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167)
        at
org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:108)
        at
org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:97)
        at
org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:57)
        at
org.apache.camel.impl.DefaultRoute.getServicesForRoute(DefaultRoute.java:81)
        at org.apache.camel.impl.RouteService.doStart(RouteService.java:77)
        at
org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
        at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:825)
        at
org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99)
        at
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:119)
        ... 12 more

My camel context:


<?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:cxf="http://camel.apache.org/schema/cxf"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.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
    ">
   <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-http-jetty.xml" />

    <bean id="builder" class="test.DynamicRouteBuilder"/>
   <camelContext id="test_context"
xmlns="http://camel.apache.org/schema/spring">
       <routeBuilder  ref="builder"/>
   </camelContext>
   
   <bean id="test" class="test.Test" init-method="doTest"
destroy-method="tearDown">
   	<property name="builder" ref="builder"/>
   </bean>
</beans>

And my import directives:
                        javax.jws,
                        javax.wsdl,
                        javax.xml.bind,
                        javax.xml.bind.annotation,
                        javax.xml.namespace,
                        javax.xml.soap,
                        javax.xml.ws,
                        META-INF.cxf,
                        META-INF.cxf.osgi,
                        
			org.apache.cxf,
			org.apache.cxf.binding,
			org.apache.cxf.binding.soap,
			org.apache.cxf.binding.soap.interceptor,
			org.apache.cxf.binding.soap.model,
			org.apache.cxf.binding.xml,
			org.apache.cxf.bindings.xformat,
			org.apache.cxf.common.classloader,
			org.apache.cxf.common.i18n,
			org.apache.cxf.common.logging,
			org.apache.cxf.common.util,
			org.apache.cxf.configuration,
			org.apache.cxf.configuration.security,
			org.apache.cxf.configuration.spring,
			org.apache.cxf.databinding,
				org.apache.cxf.endpoint,
				org.apache.cxf.feature,
				org.apache.cxf.frontend,
				org.apache.cxf.headers,
				org.apache.cxf.helpers,
				org.apache.cxf.interceptor,
				org.apache.cxf.io,
				org.apache.cxf.jaxrs,
				org.apache.cxf.jaxrs.client,
				org.apache.cxf.jaxrs.model,
				org.apache.cxf.jaxrs.utils,
				org.apache.cxf.jaxws,
				org.apache.cxf.jaxws.context,
				org.apache.cxf.message,
				org.apache.cxf.phase,
				org.apache.cxf.service,
				org.apache.cxf.service.factory,
				org.apache.cxf.service.invoker,
				org.apache.cxf.service.model,
				org.apache.cxf.staxutils,
				org.apache.cxf.ws.addressing,
				org.apache.cxf.wsdl,
				org.apache.cxf.wsdl11,
				org.apache.cxf.transport,
				org.apache.cxf.transport.http,
				org.apache.cxf.transport.http_jetty,
				org.apache.cxf.transport.http.policy,
                        
                        org.apache.cxf.bus,
                        org.apache.cxf.bus.spring,
                        org.apache.cxf.bus.resource,
                        org.apache.cxf.resource,
                        org.springframework.beans.factory.config,
                        org.apache.servicemix.common.osgi,
                        *


-- 
View this message in context: http://old.nabble.com/Classpath-problem-with-camel-cxf-and-OSGi-tp26612544p26612544.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Classpath problem with camel-cxf and OSGi

Posted by akuhtz <an...@siemens.com>.
Hi,

See here: 
http://old.nabble.com/-VOTE--Release-Apache-Camel-2.1.0-to26587866s22882.html
http://old.nabble.com/-VOTE--Release-Apache-Camel-2.1.0-to26587866s22882.html 
for download link of version 2.1.0
-- 
View this message in context: http://old.nabble.com/Classpath-problem-with-camel-cxf-and-OSGi-tp26612544p26621727.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Classpath problem with camel-cxf and OSGi

Posted by Willem Jiang <wi...@gmail.com>.
Hi,
If you don't mind , you can try out the voting Camel 2.1.0.
Here is the maven stage repo[1] and tarball[2]

[1]https://repository.apache.org/content/repositories/orgapachecamel-029/org/apache/camel/
[2]https://repository.apache.org/content/repositories/orgapachecamel-029/org/apache/camel/apache-camel/2.1.0/

Willem

TheWinch wrote:
> Hi,
> 
> Thanks for this answer. Is there a place where I can get a packaged snapshot
> version of camel 2.1.0 ? Or should I build it from the SVN ?
> 
> 
> willem.jiang wrote:
>> Hi,
>>
>> This issue is related the get default bus issue[1], and it should be 
>> fixed in the coming out Camel 2.1.0.
>> [1]https://issues.apache.org/activemq/browse/CAMEL-2216
>>
>> Willem
>>
>> TheWinch wrote:
>>> Hi,
>>>
>>> I'm trying to deploy dynamically endpoints using camel-cxf. I have an
>>> example that works perfectly well in camel 2.0.0 standalone, and that
>>> does
>>> not work in camel 2.0.0 deployed on SMX4 (code provided below).
>>> I have read on forums that this might come from class-path issues.
>>> However I
>>> can't see where it comes from. Could someone help ?
>>>
>>> To deploy the endpoint I do:
>>>
>>> // in Test:
>>> public void doTest() { builder.deployEndpoint(); }
>>> // in DynamicBuilder:
>>> public void deployEndpoint() {
>>>         CamelContext context = getContext();
>>>         
>>>         final String endpointUri = "cxf:" +
>>> "http://localhost:9000/service"
>>> + "?serviceClass=" + SERVICE_CLASS;        
>>>         def = from( endpointUri );
>>>         def.process( new CallbackProcessor() );
>>>         context.addRouteDefinitions( Arrays.asList( def ) );
>>>         context.startRoute( def );
>>> }
>>>
>>> This works OK in camel standalone, and in SMX4 this generates the
>>> following
>>> error:
>>>
>>> org.apache.camel.RuntimeCamelException: java.lang.RuntimeException: Could
>>> not find destination factory for transport
>>> http://schemas.xmlsoap.org/soap/h
>>> ttp
>>>         at
>>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1011)
>>>         at
>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
>>>         at
>>> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:469)
>>>         at
>>> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
>>>         at
>>> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
>>>         at
>>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
>>>         at
>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
>>>         at
>>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
>>>         at
>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.finishRefresh(AbstractDelegatedExecutionApplicationCo
>>> ntext.java:380)
>>>         at
>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.ja
>>> va:346)
>>>         at
>>> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>>>         at
>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplication
>>> Context.java:308)
>>>         at
>>> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(Dependen
>>> cyWaiterApplicationContextExecutor.java:138)
>>>         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:118)
>>>         at
>>> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167)
>>>         at
>>> org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:108)
>>>         at
>>> org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:97)
>>>         at
>>> org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:57)
>>>         at
>>> org.apache.camel.impl.DefaultRoute.getServicesForRoute(DefaultRoute.java:81)
>>>         at
>>> org.apache.camel.impl.RouteService.doStart(RouteService.java:77)
>>>         at
>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>>>         at
>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:825)
>>>         at
>>> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99)
>>>         at
>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:119)
>>>         ... 12 more
>>>
>>> My camel context:
>>>
>>>
>>> <?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:cxf="http://camel.apache.org/schema/cxf"
>>>        xsi:schemaLocation="
>>>        http://www.springframework.org/schema/beans
>>> http://www.springframework.org/schema/beans/spring-beans-2.5.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
>>>     ">
>>>    <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-http-jetty.xml"
>>> />
>>>
>>>     <bean id="builder" class="test.DynamicRouteBuilder"/>
>>>    <camelContext id="test_context"
>>> xmlns="http://camel.apache.org/schema/spring">
>>>        <routeBuilder  ref="builder"/>
>>>    </camelContext>
>>>    
>>>    <bean id="test" class="test.Test" init-method="doTest"
>>> destroy-method="tearDown">
>>>    	<property name="builder" ref="builder"/>
>>>    </bean>
>>> </beans>
>>>
>>> And my import directives:
>>>                         javax.jws,
>>>                         javax.wsdl,
>>>                         javax.xml.bind,
>>>                         javax.xml.bind.annotation,
>>>                         javax.xml.namespace,
>>>                         javax.xml.soap,
>>>                         javax.xml.ws,
>>>                         META-INF.cxf,
>>>                         META-INF.cxf.osgi,
>>>                         
>>> 			org.apache.cxf,
>>> 			org.apache.cxf.binding,
>>> 			org.apache.cxf.binding.soap,
>>> 			org.apache.cxf.binding.soap.interceptor,
>>> 			org.apache.cxf.binding.soap.model,
>>> 			org.apache.cxf.binding.xml,
>>> 			org.apache.cxf.bindings.xformat,
>>> 			org.apache.cxf.common.classloader,
>>> 			org.apache.cxf.common.i18n,
>>> 			org.apache.cxf.common.logging,
>>> 			org.apache.cxf.common.util,
>>> 			org.apache.cxf.configuration,
>>> 			org.apache.cxf.configuration.security,
>>> 			org.apache.cxf.configuration.spring,
>>> 			org.apache.cxf.databinding,
>>> 				org.apache.cxf.endpoint,
>>> 				org.apache.cxf.feature,
>>> 				org.apache.cxf.frontend,
>>> 				org.apache.cxf.headers,
>>> 				org.apache.cxf.helpers,
>>> 				org.apache.cxf.interceptor,
>>> 				org.apache.cxf.io,
>>> 				org.apache.cxf.jaxrs,
>>> 				org.apache.cxf.jaxrs.client,
>>> 				org.apache.cxf.jaxrs.model,
>>> 				org.apache.cxf.jaxrs.utils,
>>> 				org.apache.cxf.jaxws,
>>> 				org.apache.cxf.jaxws.context,
>>> 				org.apache.cxf.message,
>>> 				org.apache.cxf.phase,
>>> 				org.apache.cxf.service,
>>> 				org.apache.cxf.service.factory,
>>> 				org.apache.cxf.service.invoker,
>>> 				org.apache.cxf.service.model,
>>> 				org.apache.cxf.staxutils,
>>> 				org.apache.cxf.ws.addressing,
>>> 				org.apache.cxf.wsdl,
>>> 				org.apache.cxf.wsdl11,
>>> 				org.apache.cxf.transport,
>>> 				org.apache.cxf.transport.http,
>>> 				org.apache.cxf.transport.http_jetty,
>>> 				org.apache.cxf.transport.http.policy,
>>>                         
>>>                         org.apache.cxf.bus,
>>>                         org.apache.cxf.bus.spring,
>>>                         org.apache.cxf.bus.resource,
>>>                         org.apache.cxf.resource,
>>>                         org.springframework.beans.factory.config,
>>>                         org.apache.servicemix.common.osgi,
>>>                         *
>>>
>>>
>>
>>
> 


Re: Classpath problem with camel-cxf and OSGi

Posted by Charles Moulliard <cm...@gmail.com>.
An alternative possibility mentioned in a previous post is to use Apache
Felix Karaf (kernel of SMX4) if you don't need NMR, JBI components but only
camel

You can install easily the camel-cxf feature. This feature will
automatically install CXF.

http://repository.apache.org/snapshots/org/apache/camel/karaf/features/2.1-SNAPSHOT/features-2.1-SNAPSHOT-features.xml

<feature name="camel-cxf" version="2.1-SNAPSHOT">
<bundle>mvn:commons-pool/commons-pool/1.4</bundle>
-
<bundle>
mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1
</bundle>
<bundle>mvn:org.springframework/spring-jms/2.5.6.SEC01</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.asm/2.2.3_3
</bundle>
-
<bundle>
mvn:org.apache.geronimo.specs/geronimo-servlet_2.5_spec/1.1.2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty-bundle/6.1.14_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-codec/1.3_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/1.1_2
</bundle>
<bundle>mvn:org.codehaus.jettison/jettison/1.1</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/1.7.0_3
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bcel/5.2_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/2.7.1_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/2.9.1_3
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlbeans/2.4.0_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlsec/1.4.3_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/1.2_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.woodstox/3.2.8_1
</bundle>
<bundle>mvn:org.apache.ws.commons.schema/XmlSchema/1.4.5</bundle>
<bundle>mvn:commons-lang/commons-lang/2.4</bundle>
<bundle>mvn:commons-collections/commons-collections/3.2.1</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/2.7.7_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oro/2.0.8_3
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.velocity/1.6.2_3
</bundle>
<bundle>mvn:org.apache.ws.commons.axiom/axiom-impl/1.2.8</bundle>
<bundle>mvn:org.apache.ws.commons.axiom/axiom-api/1.2.8</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax.mail/1.4.1_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.neethi/2.0.4_1
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.abdera/0.4.0-incubating_3
</bundle>
-
<bundle>
mvn:org.apache.geronimo.specs/geronimo-jaxws_2.1_spec/1.0
</bundle>
-
<bundle>
mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1
</bundle>
-
<bundle>
mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/1.4.0
</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wsdl4j/1.6.2_2
</bundle>
-
<bundle>
mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr311-api-1.0/1.3.0
</bundle>
-
<bundle>
mvn:org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/1.1.2
</bundle>
<bundle>mvn:org.apache.cxf/cxf-bundle/2.2.5</bundle>
-
<bundle>
mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-io/1.3.2_3
</bundle>
<feature version="2.1-SNAPSHOT">camel-spring-osgi</feature>
<feature version="1.1.0-SNAPSHOT">http</feature>
<bundle>mvn:org.apache.camel/camel-cxf/2.1-SNAPSHOT</bundle>
</feature>


Regards,

Charles Moulliard
Senior Enterprise Architect
Apache Camel Committer

*****************************
blog : http://cmoulliard.blogspot.com
twitter : http://twitter.com/cmoulliard
Linkedlin : http://www.linkedin.com/in/charlesmoulliard

Apache Camel Group :
http://www.linkedin.com/groups?home=&gid=2447439&trk=anet_ug_hm


On Fri, Dec 4, 2009 at 2:23 AM, Willem Jiang <wi...@gmail.com> wrote:

> As we are in the middle of whole bunch of release.
> CXF 2.2.5 , Camel 2.1.0 , then ServiceMix 4.1.0 ...
>
> If you can wait for a week, you will get what you want :)
>
> If you can't wait, you may need to uninstall the CXF 2.2.4 bundle and
> reinstall CXF 2.2.5 bundle yourself.
>
> Willem
>
>
>
> TheWinch wrote:
>
>> Is there a way to use Camel-cxf  2.1.0 in Servicemix 4.1.0 ?
>>
>> I have downloaded SMX 4.1.0-SNAPSHOT, but I can't install Camel-cxf. I
>> have
>> noted also that SMX uses CXF2.2.4 while Camel uses CXF 2.2.5. Any
>> knowledge
>> on this side ? Should I better ask in the SMX mailing list ?
>>
>>
>> Claus Ibsen-2 wrote:
>>
>>> On Thu, Dec 3, 2009 at 9:09 AM, TheWinch
>>> <vi...@thalesgroup.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> Thanks for this answer. Is there a place where I can get a packaged
>>>> snapshot
>>>> version of camel 2.1.0 ? Or should I build it from the SVN ?
>>>>
>>>>  Yes the download page at Camel have links to .zip of SNAPSHOT and how
>>> to setup maven to use SNAPSHOT
>>> http://camel.apache.org/download.html
>>>
>>>
>>>
>>>  willem.jiang wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> This issue is related the get default bus issue[1], and it should be
>>>>> fixed in the coming out Camel 2.1.0.
>>>>> [1]https://issues.apache.org/activemq/browse/CAMEL-2216
>>>>>
>>>>> Willem
>>>>>
>>>>> TheWinch wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I'm trying to deploy dynamically endpoints using camel-cxf. I have an
>>>>>> example that works perfectly well in camel 2.0.0 standalone, and that
>>>>>> does
>>>>>> not work in camel 2.0.0 deployed on SMX4 (code provided below).
>>>>>> I have read on forums that this might come from class-path issues.
>>>>>> However I
>>>>>> can't see where it comes from. Could someone help ?
>>>>>>
>>>>>> To deploy the endpoint I do:
>>>>>>
>>>>>> // in Test:
>>>>>> public void doTest() { builder.deployEndpoint(); }
>>>>>> // in DynamicBuilder:
>>>>>> public void deployEndpoint() {
>>>>>>        CamelContext context = getContext();
>>>>>>
>>>>>>        final String endpointUri = "cxf:" +
>>>>>> "http://localhost:9000/service"
>>>>>> + "?serviceClass=" + SERVICE_CLASS;
>>>>>>        def = from( endpointUri );
>>>>>>        def.process( new CallbackProcessor() );
>>>>>>        context.addRouteDefinitions( Arrays.asList( def ) );
>>>>>>        context.startRoute( def );
>>>>>> }
>>>>>>
>>>>>> This works OK in camel standalone, and in SMX4 this generates the
>>>>>> following
>>>>>> error:
>>>>>>
>>>>>> org.apache.camel.RuntimeCamelException: java.lang.RuntimeException:
>>>>>> Could
>>>>>> not find destination factory for transport
>>>>>> http://schemas.xmlsoap.org/soap/h
>>>>>> ttp
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1011)
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:469)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.finishRefresh(AbstractDelegatedExecutionApplicationCo
>>>>>> ntext.java:380)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.ja
>>>>>> va:346)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplication
>>>>>> Context.java:308)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(Dependen
>>>>>> cyWaiterApplicationContextExecutor.java:138)
>>>>>>        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:118)
>>>>>>        at
>>>>>>
>>>>>> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167)
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:108)
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:97)
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:57)
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.impl.DefaultRoute.getServicesForRoute(DefaultRoute.java:81)
>>>>>>        at
>>>>>> org.apache.camel.impl.RouteService.doStart(RouteService.java:77)
>>>>>>        at
>>>>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:825)
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99)
>>>>>>        at
>>>>>>
>>>>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:119)
>>>>>>        ... 12 more
>>>>>>
>>>>>> My camel context:
>>>>>>
>>>>>>
>>>>>> <?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:cxf="http://camel.apache.org/schema/cxf"
>>>>>>       xsi:schemaLocation="
>>>>>>       http://www.springframework.org/schema/beans
>>>>>> http://www.springframework.org/schema/beans/spring-beans-2.5.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
>>>>>>    ">
>>>>>>   <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-http-jetty.xml"
>>>>>> />
>>>>>>
>>>>>>    <bean id="builder" class="test.DynamicRouteBuilder"/>
>>>>>>   <camelContext id="test_context"
>>>>>> xmlns="http://camel.apache.org/schema/spring">
>>>>>>       <routeBuilder  ref="builder"/>
>>>>>>   </camelContext>
>>>>>>
>>>>>>   <bean id="test" class="test.Test" init-method="doTest"
>>>>>> destroy-method="tearDown">
>>>>>>     <property name="builder" ref="builder"/>
>>>>>>   </bean>
>>>>>> </beans>
>>>>>>
>>>>>> And my import directives:
>>>>>>                        javax.jws,
>>>>>>                        javax.wsdl,
>>>>>>                        javax.xml.bind,
>>>>>>                        javax.xml.bind.annotation,
>>>>>>                        javax.xml.namespace,
>>>>>>                        javax.xml.soap,
>>>>>>                        javax.xml.ws,
>>>>>>                        META-INF.cxf,
>>>>>>                        META-INF.cxf.osgi,
>>>>>>
>>>>>>                     org.apache.cxf,
>>>>>>                     org.apache.cxf.binding,
>>>>>>                     org.apache.cxf.binding.soap,
>>>>>>                     org.apache.cxf.binding.soap.interceptor,
>>>>>>                     org.apache.cxf.binding.soap.model,
>>>>>>                     org.apache.cxf.binding.xml,
>>>>>>                     org.apache.cxf.bindings.xformat,
>>>>>>                     org.apache.cxf.common.classloader,
>>>>>>                     org.apache.cxf.common.i18n,
>>>>>>                     org.apache.cxf.common.logging,
>>>>>>                     org.apache.cxf.common.util,
>>>>>>                     org.apache.cxf.configuration,
>>>>>>                     org.apache.cxf.configuration.security,
>>>>>>                     org.apache.cxf.configuration.spring,
>>>>>>                     org.apache.cxf.databinding,
>>>>>>                             org.apache.cxf.endpoint,
>>>>>>                             org.apache.cxf.feature,
>>>>>>                             org.apache.cxf.frontend,
>>>>>>                             org.apache.cxf.headers,
>>>>>>                             org.apache.cxf.helpers,
>>>>>>                             org.apache.cxf.interceptor,
>>>>>>                             org.apache.cxf.io,
>>>>>>                             org.apache.cxf.jaxrs,
>>>>>>                             org.apache.cxf.jaxrs.client,
>>>>>>                             org.apache.cxf.jaxrs.model,
>>>>>>                             org.apache.cxf.jaxrs.utils,
>>>>>>                             org.apache.cxf.jaxws,
>>>>>>                             org.apache.cxf.jaxws.context,
>>>>>>                             org.apache.cxf.message,
>>>>>>                             org.apache.cxf.phase,
>>>>>>                             org.apache.cxf.service,
>>>>>>                             org.apache.cxf.service.factory,
>>>>>>                             org.apache.cxf.service.invoker,
>>>>>>                             org.apache.cxf.service.model,
>>>>>>                             org.apache.cxf.staxutils,
>>>>>>                             org.apache.cxf.ws.addressing,
>>>>>>                             org.apache.cxf.wsdl,
>>>>>>                             org.apache.cxf.wsdl11,
>>>>>>                             org.apache.cxf.transport,
>>>>>>                             org.apache.cxf.transport.http,
>>>>>>                             org.apache.cxf.transport.http_jetty,
>>>>>>                             org.apache.cxf.transport.http.policy,
>>>>>>
>>>>>>                        org.apache.cxf.bus,
>>>>>>                        org.apache.cxf.bus.spring,
>>>>>>                        org.apache.cxf.bus.resource,
>>>>>>                        org.apache.cxf.resource,
>>>>>>                        org.springframework.beans.factory.config,
>>>>>>                        org.apache.servicemix.common.osgi,
>>>>>>                        *
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>  --
>>>> View this message in context:
>>>>
>>>> http://old.nabble.com/Classpath-problem-with-camel-cxf-and-OSGi-tp26612544p26621724.html
>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>>
>>>
>>> --
>>> Claus Ibsen
>>> Apache Camel Committer
>>>
>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>> Open Source Integration: http://fusesource.com
>>> Blog: http://davsclaus.blogspot.com/
>>> Twitter: http://twitter.com/davsclaus
>>>
>>>
>>>
>>
>

Re: Classpath problem with camel-cxf and OSGi

Posted by Willem Jiang <wi...@gmail.com>.
As we are in the middle of whole bunch of release.
CXF 2.2.5 , Camel 2.1.0 , then ServiceMix 4.1.0 ...

If you can wait for a week, you will get what you want :)

If you can't wait, you may need to uninstall the CXF 2.2.4 bundle and 
reinstall CXF 2.2.5 bundle yourself.

Willem


TheWinch wrote:
> Is there a way to use Camel-cxf  2.1.0 in Servicemix 4.1.0 ?
> 
> I have downloaded SMX 4.1.0-SNAPSHOT, but I can't install Camel-cxf. I have
> noted also that SMX uses CXF2.2.4 while Camel uses CXF 2.2.5. Any knowledge
> on this side ? Should I better ask in the SMX mailing list ?
> 
> 
> Claus Ibsen-2 wrote:
>> On Thu, Dec 3, 2009 at 9:09 AM, TheWinch
>> <vi...@thalesgroup.com> wrote:
>>> Hi,
>>>
>>> Thanks for this answer. Is there a place where I can get a packaged
>>> snapshot
>>> version of camel 2.1.0 ? Or should I build it from the SVN ?
>>>
>> Yes the download page at Camel have links to .zip of SNAPSHOT and how
>> to setup maven to use SNAPSHOT
>> http://camel.apache.org/download.html
>>
>>
>>
>>> willem.jiang wrote:
>>>> Hi,
>>>>
>>>> This issue is related the get default bus issue[1], and it should be
>>>> fixed in the coming out Camel 2.1.0.
>>>> [1]https://issues.apache.org/activemq/browse/CAMEL-2216
>>>>
>>>> Willem
>>>>
>>>> TheWinch wrote:
>>>>> Hi,
>>>>>
>>>>> I'm trying to deploy dynamically endpoints using camel-cxf. I have an
>>>>> example that works perfectly well in camel 2.0.0 standalone, and that
>>>>> does
>>>>> not work in camel 2.0.0 deployed on SMX4 (code provided below).
>>>>> I have read on forums that this might come from class-path issues.
>>>>> However I
>>>>> can't see where it comes from. Could someone help ?
>>>>>
>>>>> To deploy the endpoint I do:
>>>>>
>>>>> // in Test:
>>>>> public void doTest() { builder.deployEndpoint(); }
>>>>> // in DynamicBuilder:
>>>>> public void deployEndpoint() {
>>>>>         CamelContext context = getContext();
>>>>>
>>>>>         final String endpointUri = "cxf:" +
>>>>> "http://localhost:9000/service"
>>>>> + "?serviceClass=" + SERVICE_CLASS;
>>>>>         def = from( endpointUri );
>>>>>         def.process( new CallbackProcessor() );
>>>>>         context.addRouteDefinitions( Arrays.asList( def ) );
>>>>>         context.startRoute( def );
>>>>> }
>>>>>
>>>>> This works OK in camel standalone, and in SMX4 this generates the
>>>>> following
>>>>> error:
>>>>>
>>>>> org.apache.camel.RuntimeCamelException: java.lang.RuntimeException:
>>>>> Could
>>>>> not find destination factory for transport
>>>>> http://schemas.xmlsoap.org/soap/h
>>>>> ttp
>>>>>         at
>>>>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1011)
>>>>>         at
>>>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
>>>>>         at
>>>>> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:469)
>>>>>         at
>>>>> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
>>>>>         at
>>>>> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
>>>>>         at
>>>>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
>>>>>         at
>>>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
>>>>>         at
>>>>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
>>>>>         at
>>>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.finishRefresh(AbstractDelegatedExecutionApplicationCo
>>>>> ntext.java:380)
>>>>>         at
>>>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.ja
>>>>> va:346)
>>>>>         at
>>>>> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>>>>>         at
>>>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplication
>>>>> Context.java:308)
>>>>>         at
>>>>> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(Dependen
>>>>> cyWaiterApplicationContextExecutor.java:138)
>>>>>         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:118)
>>>>>         at
>>>>> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167)
>>>>>         at
>>>>> org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:108)
>>>>>         at
>>>>> org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:97)
>>>>>         at
>>>>> org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:57)
>>>>>         at
>>>>> org.apache.camel.impl.DefaultRoute.getServicesForRoute(DefaultRoute.java:81)
>>>>>         at
>>>>> org.apache.camel.impl.RouteService.doStart(RouteService.java:77)
>>>>>         at
>>>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>>>>>         at
>>>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:825)
>>>>>         at
>>>>> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99)
>>>>>         at
>>>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:119)
>>>>>         ... 12 more
>>>>>
>>>>> My camel context:
>>>>>
>>>>>
>>>>> <?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:cxf="http://camel.apache.org/schema/cxf"
>>>>>        xsi:schemaLocation="
>>>>>        http://www.springframework.org/schema/beans
>>>>> http://www.springframework.org/schema/beans/spring-beans-2.5.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
>>>>>     ">
>>>>>    <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-http-jetty.xml"
>>>>> />
>>>>>
>>>>>     <bean id="builder" class="test.DynamicRouteBuilder"/>
>>>>>    <camelContext id="test_context"
>>>>> xmlns="http://camel.apache.org/schema/spring">
>>>>>        <routeBuilder  ref="builder"/>
>>>>>    </camelContext>
>>>>>
>>>>>    <bean id="test" class="test.Test" init-method="doTest"
>>>>> destroy-method="tearDown">
>>>>>      <property name="builder" ref="builder"/>
>>>>>    </bean>
>>>>> </beans>
>>>>>
>>>>> And my import directives:
>>>>>                         javax.jws,
>>>>>                         javax.wsdl,
>>>>>                         javax.xml.bind,
>>>>>                         javax.xml.bind.annotation,
>>>>>                         javax.xml.namespace,
>>>>>                         javax.xml.soap,
>>>>>                         javax.xml.ws,
>>>>>                         META-INF.cxf,
>>>>>                         META-INF.cxf.osgi,
>>>>>
>>>>>                      org.apache.cxf,
>>>>>                      org.apache.cxf.binding,
>>>>>                      org.apache.cxf.binding.soap,
>>>>>                      org.apache.cxf.binding.soap.interceptor,
>>>>>                      org.apache.cxf.binding.soap.model,
>>>>>                      org.apache.cxf.binding.xml,
>>>>>                      org.apache.cxf.bindings.xformat,
>>>>>                      org.apache.cxf.common.classloader,
>>>>>                      org.apache.cxf.common.i18n,
>>>>>                      org.apache.cxf.common.logging,
>>>>>                      org.apache.cxf.common.util,
>>>>>                      org.apache.cxf.configuration,
>>>>>                      org.apache.cxf.configuration.security,
>>>>>                      org.apache.cxf.configuration.spring,
>>>>>                      org.apache.cxf.databinding,
>>>>>                              org.apache.cxf.endpoint,
>>>>>                              org.apache.cxf.feature,
>>>>>                              org.apache.cxf.frontend,
>>>>>                              org.apache.cxf.headers,
>>>>>                              org.apache.cxf.helpers,
>>>>>                              org.apache.cxf.interceptor,
>>>>>                              org.apache.cxf.io,
>>>>>                              org.apache.cxf.jaxrs,
>>>>>                              org.apache.cxf.jaxrs.client,
>>>>>                              org.apache.cxf.jaxrs.model,
>>>>>                              org.apache.cxf.jaxrs.utils,
>>>>>                              org.apache.cxf.jaxws,
>>>>>                              org.apache.cxf.jaxws.context,
>>>>>                              org.apache.cxf.message,
>>>>>                              org.apache.cxf.phase,
>>>>>                              org.apache.cxf.service,
>>>>>                              org.apache.cxf.service.factory,
>>>>>                              org.apache.cxf.service.invoker,
>>>>>                              org.apache.cxf.service.model,
>>>>>                              org.apache.cxf.staxutils,
>>>>>                              org.apache.cxf.ws.addressing,
>>>>>                              org.apache.cxf.wsdl,
>>>>>                              org.apache.cxf.wsdl11,
>>>>>                              org.apache.cxf.transport,
>>>>>                              org.apache.cxf.transport.http,
>>>>>                              org.apache.cxf.transport.http_jetty,
>>>>>                              org.apache.cxf.transport.http.policy,
>>>>>
>>>>>                         org.apache.cxf.bus,
>>>>>                         org.apache.cxf.bus.spring,
>>>>>                         org.apache.cxf.bus.resource,
>>>>>                         org.apache.cxf.resource,
>>>>>                         org.springframework.beans.factory.config,
>>>>>                         org.apache.servicemix.common.osgi,
>>>>>                         *
>>>>>
>>>>>
>>>>
>>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/Classpath-problem-with-camel-cxf-and-OSGi-tp26612544p26621724.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>> -- 
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
> 


Re: Classpath problem with camel-cxf and OSGi

Posted by TheWinch <vi...@thalesgroup.com>.
Is there a way to use Camel-cxf  2.1.0 in Servicemix 4.1.0 ?

I have downloaded SMX 4.1.0-SNAPSHOT, but I can't install Camel-cxf. I have
noted also that SMX uses CXF2.2.4 while Camel uses CXF 2.2.5. Any knowledge
on this side ? Should I better ask in the SMX mailing list ?


Claus Ibsen-2 wrote:
> 
> On Thu, Dec 3, 2009 at 9:09 AM, TheWinch
> <vi...@thalesgroup.com> wrote:
>>
>> Hi,
>>
>> Thanks for this answer. Is there a place where I can get a packaged
>> snapshot
>> version of camel 2.1.0 ? Or should I build it from the SVN ?
>>
> 
> Yes the download page at Camel have links to .zip of SNAPSHOT and how
> to setup maven to use SNAPSHOT
> http://camel.apache.org/download.html
> 
> 
> 
>>
>> willem.jiang wrote:
>>>
>>> Hi,
>>>
>>> This issue is related the get default bus issue[1], and it should be
>>> fixed in the coming out Camel 2.1.0.
>>> [1]https://issues.apache.org/activemq/browse/CAMEL-2216
>>>
>>> Willem
>>>
>>> TheWinch wrote:
>>>> Hi,
>>>>
>>>> I'm trying to deploy dynamically endpoints using camel-cxf. I have an
>>>> example that works perfectly well in camel 2.0.0 standalone, and that
>>>> does
>>>> not work in camel 2.0.0 deployed on SMX4 (code provided below).
>>>> I have read on forums that this might come from class-path issues.
>>>> However I
>>>> can't see where it comes from. Could someone help ?
>>>>
>>>> To deploy the endpoint I do:
>>>>
>>>> // in Test:
>>>> public void doTest() { builder.deployEndpoint(); }
>>>> // in DynamicBuilder:
>>>> public void deployEndpoint() {
>>>>         CamelContext context = getContext();
>>>>
>>>>         final String endpointUri = "cxf:" +
>>>> "http://localhost:9000/service"
>>>> + "?serviceClass=" + SERVICE_CLASS;
>>>>         def = from( endpointUri );
>>>>         def.process( new CallbackProcessor() );
>>>>         context.addRouteDefinitions( Arrays.asList( def ) );
>>>>         context.startRoute( def );
>>>> }
>>>>
>>>> This works OK in camel standalone, and in SMX4 this generates the
>>>> following
>>>> error:
>>>>
>>>> org.apache.camel.RuntimeCamelException: java.lang.RuntimeException:
>>>> Could
>>>> not find destination factory for transport
>>>> http://schemas.xmlsoap.org/soap/h
>>>> ttp
>>>>         at
>>>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1011)
>>>>         at
>>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
>>>>         at
>>>> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:469)
>>>>         at
>>>> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
>>>>         at
>>>> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
>>>>         at
>>>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
>>>>         at
>>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
>>>>         at
>>>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
>>>>         at
>>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.finishRefresh(AbstractDelegatedExecutionApplicationCo
>>>> ntext.java:380)
>>>>         at
>>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.ja
>>>> va:346)
>>>>         at
>>>> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>>>>         at
>>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplication
>>>> Context.java:308)
>>>>         at
>>>> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(Dependen
>>>> cyWaiterApplicationContextExecutor.java:138)
>>>>         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:118)
>>>>         at
>>>> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167)
>>>>         at
>>>> org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:108)
>>>>         at
>>>> org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:97)
>>>>         at
>>>> org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:57)
>>>>         at
>>>> org.apache.camel.impl.DefaultRoute.getServicesForRoute(DefaultRoute.java:81)
>>>>         at
>>>> org.apache.camel.impl.RouteService.doStart(RouteService.java:77)
>>>>         at
>>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>>>>         at
>>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:825)
>>>>         at
>>>> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99)
>>>>         at
>>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:119)
>>>>         ... 12 more
>>>>
>>>> My camel context:
>>>>
>>>>
>>>> <?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:cxf="http://camel.apache.org/schema/cxf"
>>>>        xsi:schemaLocation="
>>>>        http://www.springframework.org/schema/beans
>>>> http://www.springframework.org/schema/beans/spring-beans-2.5.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
>>>>     ">
>>>>    <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-http-jetty.xml"
>>>> />
>>>>
>>>>     <bean id="builder" class="test.DynamicRouteBuilder"/>
>>>>    <camelContext id="test_context"
>>>> xmlns="http://camel.apache.org/schema/spring">
>>>>        <routeBuilder  ref="builder"/>
>>>>    </camelContext>
>>>>
>>>>    <bean id="test" class="test.Test" init-method="doTest"
>>>> destroy-method="tearDown">
>>>>      <property name="builder" ref="builder"/>
>>>>    </bean>
>>>> </beans>
>>>>
>>>> And my import directives:
>>>>                         javax.jws,
>>>>                         javax.wsdl,
>>>>                         javax.xml.bind,
>>>>                         javax.xml.bind.annotation,
>>>>                         javax.xml.namespace,
>>>>                         javax.xml.soap,
>>>>                         javax.xml.ws,
>>>>                         META-INF.cxf,
>>>>                         META-INF.cxf.osgi,
>>>>
>>>>                      org.apache.cxf,
>>>>                      org.apache.cxf.binding,
>>>>                      org.apache.cxf.binding.soap,
>>>>                      org.apache.cxf.binding.soap.interceptor,
>>>>                      org.apache.cxf.binding.soap.model,
>>>>                      org.apache.cxf.binding.xml,
>>>>                      org.apache.cxf.bindings.xformat,
>>>>                      org.apache.cxf.common.classloader,
>>>>                      org.apache.cxf.common.i18n,
>>>>                      org.apache.cxf.common.logging,
>>>>                      org.apache.cxf.common.util,
>>>>                      org.apache.cxf.configuration,
>>>>                      org.apache.cxf.configuration.security,
>>>>                      org.apache.cxf.configuration.spring,
>>>>                      org.apache.cxf.databinding,
>>>>                              org.apache.cxf.endpoint,
>>>>                              org.apache.cxf.feature,
>>>>                              org.apache.cxf.frontend,
>>>>                              org.apache.cxf.headers,
>>>>                              org.apache.cxf.helpers,
>>>>                              org.apache.cxf.interceptor,
>>>>                              org.apache.cxf.io,
>>>>                              org.apache.cxf.jaxrs,
>>>>                              org.apache.cxf.jaxrs.client,
>>>>                              org.apache.cxf.jaxrs.model,
>>>>                              org.apache.cxf.jaxrs.utils,
>>>>                              org.apache.cxf.jaxws,
>>>>                              org.apache.cxf.jaxws.context,
>>>>                              org.apache.cxf.message,
>>>>                              org.apache.cxf.phase,
>>>>                              org.apache.cxf.service,
>>>>                              org.apache.cxf.service.factory,
>>>>                              org.apache.cxf.service.invoker,
>>>>                              org.apache.cxf.service.model,
>>>>                              org.apache.cxf.staxutils,
>>>>                              org.apache.cxf.ws.addressing,
>>>>                              org.apache.cxf.wsdl,
>>>>                              org.apache.cxf.wsdl11,
>>>>                              org.apache.cxf.transport,
>>>>                              org.apache.cxf.transport.http,
>>>>                              org.apache.cxf.transport.http_jetty,
>>>>                              org.apache.cxf.transport.http.policy,
>>>>
>>>>                         org.apache.cxf.bus,
>>>>                         org.apache.cxf.bus.spring,
>>>>                         org.apache.cxf.bus.resource,
>>>>                         org.apache.cxf.resource,
>>>>                         org.springframework.beans.factory.config,
>>>>                         org.apache.servicemix.common.osgi,
>>>>                         *
>>>>
>>>>
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Classpath-problem-with-camel-cxf-and-OSGi-tp26612544p26621724.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> Claus Ibsen
> Apache Camel Committer
> 
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
> 
> 

-- 
View this message in context: http://old.nabble.com/Classpath-problem-with-camel-cxf-and-OSGi-tp26612544p26633543.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Classpath problem with camel-cxf and OSGi

Posted by Claus Ibsen <cl...@gmail.com>.
On Thu, Dec 3, 2009 at 9:09 AM, TheWinch
<vi...@thalesgroup.com> wrote:
>
> Hi,
>
> Thanks for this answer. Is there a place where I can get a packaged snapshot
> version of camel 2.1.0 ? Or should I build it from the SVN ?
>

Yes the download page at Camel have links to .zip of SNAPSHOT and how
to setup maven to use SNAPSHOT
http://camel.apache.org/download.html



>
> willem.jiang wrote:
>>
>> Hi,
>>
>> This issue is related the get default bus issue[1], and it should be
>> fixed in the coming out Camel 2.1.0.
>> [1]https://issues.apache.org/activemq/browse/CAMEL-2216
>>
>> Willem
>>
>> TheWinch wrote:
>>> Hi,
>>>
>>> I'm trying to deploy dynamically endpoints using camel-cxf. I have an
>>> example that works perfectly well in camel 2.0.0 standalone, and that
>>> does
>>> not work in camel 2.0.0 deployed on SMX4 (code provided below).
>>> I have read on forums that this might come from class-path issues.
>>> However I
>>> can't see where it comes from. Could someone help ?
>>>
>>> To deploy the endpoint I do:
>>>
>>> // in Test:
>>> public void doTest() { builder.deployEndpoint(); }
>>> // in DynamicBuilder:
>>> public void deployEndpoint() {
>>>         CamelContext context = getContext();
>>>
>>>         final String endpointUri = "cxf:" +
>>> "http://localhost:9000/service"
>>> + "?serviceClass=" + SERVICE_CLASS;
>>>         def = from( endpointUri );
>>>         def.process( new CallbackProcessor() );
>>>         context.addRouteDefinitions( Arrays.asList( def ) );
>>>         context.startRoute( def );
>>> }
>>>
>>> This works OK in camel standalone, and in SMX4 this generates the
>>> following
>>> error:
>>>
>>> org.apache.camel.RuntimeCamelException: java.lang.RuntimeException: Could
>>> not find destination factory for transport
>>> http://schemas.xmlsoap.org/soap/h
>>> ttp
>>>         at
>>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1011)
>>>         at
>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
>>>         at
>>> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:469)
>>>         at
>>> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
>>>         at
>>> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
>>>         at
>>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
>>>         at
>>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
>>>         at
>>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
>>>         at
>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.finishRefresh(AbstractDelegatedExecutionApplicationCo
>>> ntext.java:380)
>>>         at
>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.ja
>>> va:346)
>>>         at
>>> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>>>         at
>>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplication
>>> Context.java:308)
>>>         at
>>> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(Dependen
>>> cyWaiterApplicationContextExecutor.java:138)
>>>         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:118)
>>>         at
>>> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167)
>>>         at
>>> org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:108)
>>>         at
>>> org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:97)
>>>         at
>>> org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:57)
>>>         at
>>> org.apache.camel.impl.DefaultRoute.getServicesForRoute(DefaultRoute.java:81)
>>>         at
>>> org.apache.camel.impl.RouteService.doStart(RouteService.java:77)
>>>         at
>>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>>>         at
>>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:825)
>>>         at
>>> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99)
>>>         at
>>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:119)
>>>         ... 12 more
>>>
>>> My camel context:
>>>
>>>
>>> <?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:cxf="http://camel.apache.org/schema/cxf"
>>>        xsi:schemaLocation="
>>>        http://www.springframework.org/schema/beans
>>> http://www.springframework.org/schema/beans/spring-beans-2.5.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
>>>     ">
>>>    <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-http-jetty.xml"
>>> />
>>>
>>>     <bean id="builder" class="test.DynamicRouteBuilder"/>
>>>    <camelContext id="test_context"
>>> xmlns="http://camel.apache.org/schema/spring">
>>>        <routeBuilder  ref="builder"/>
>>>    </camelContext>
>>>
>>>    <bean id="test" class="test.Test" init-method="doTest"
>>> destroy-method="tearDown">
>>>      <property name="builder" ref="builder"/>
>>>    </bean>
>>> </beans>
>>>
>>> And my import directives:
>>>                         javax.jws,
>>>                         javax.wsdl,
>>>                         javax.xml.bind,
>>>                         javax.xml.bind.annotation,
>>>                         javax.xml.namespace,
>>>                         javax.xml.soap,
>>>                         javax.xml.ws,
>>>                         META-INF.cxf,
>>>                         META-INF.cxf.osgi,
>>>
>>>                      org.apache.cxf,
>>>                      org.apache.cxf.binding,
>>>                      org.apache.cxf.binding.soap,
>>>                      org.apache.cxf.binding.soap.interceptor,
>>>                      org.apache.cxf.binding.soap.model,
>>>                      org.apache.cxf.binding.xml,
>>>                      org.apache.cxf.bindings.xformat,
>>>                      org.apache.cxf.common.classloader,
>>>                      org.apache.cxf.common.i18n,
>>>                      org.apache.cxf.common.logging,
>>>                      org.apache.cxf.common.util,
>>>                      org.apache.cxf.configuration,
>>>                      org.apache.cxf.configuration.security,
>>>                      org.apache.cxf.configuration.spring,
>>>                      org.apache.cxf.databinding,
>>>                              org.apache.cxf.endpoint,
>>>                              org.apache.cxf.feature,
>>>                              org.apache.cxf.frontend,
>>>                              org.apache.cxf.headers,
>>>                              org.apache.cxf.helpers,
>>>                              org.apache.cxf.interceptor,
>>>                              org.apache.cxf.io,
>>>                              org.apache.cxf.jaxrs,
>>>                              org.apache.cxf.jaxrs.client,
>>>                              org.apache.cxf.jaxrs.model,
>>>                              org.apache.cxf.jaxrs.utils,
>>>                              org.apache.cxf.jaxws,
>>>                              org.apache.cxf.jaxws.context,
>>>                              org.apache.cxf.message,
>>>                              org.apache.cxf.phase,
>>>                              org.apache.cxf.service,
>>>                              org.apache.cxf.service.factory,
>>>                              org.apache.cxf.service.invoker,
>>>                              org.apache.cxf.service.model,
>>>                              org.apache.cxf.staxutils,
>>>                              org.apache.cxf.ws.addressing,
>>>                              org.apache.cxf.wsdl,
>>>                              org.apache.cxf.wsdl11,
>>>                              org.apache.cxf.transport,
>>>                              org.apache.cxf.transport.http,
>>>                              org.apache.cxf.transport.http_jetty,
>>>                              org.apache.cxf.transport.http.policy,
>>>
>>>                         org.apache.cxf.bus,
>>>                         org.apache.cxf.bus.spring,
>>>                         org.apache.cxf.bus.resource,
>>>                         org.apache.cxf.resource,
>>>                         org.springframework.beans.factory.config,
>>>                         org.apache.servicemix.common.osgi,
>>>                         *
>>>
>>>
>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/Classpath-problem-with-camel-cxf-and-OSGi-tp26612544p26621724.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Re: Classpath problem with camel-cxf and OSGi

Posted by TheWinch <vi...@thalesgroup.com>.
Hi,

Thanks for this answer. Is there a place where I can get a packaged snapshot
version of camel 2.1.0 ? Or should I build it from the SVN ?


willem.jiang wrote:
> 
> Hi,
> 
> This issue is related the get default bus issue[1], and it should be 
> fixed in the coming out Camel 2.1.0.
> [1]https://issues.apache.org/activemq/browse/CAMEL-2216
> 
> Willem
> 
> TheWinch wrote:
>> Hi,
>> 
>> I'm trying to deploy dynamically endpoints using camel-cxf. I have an
>> example that works perfectly well in camel 2.0.0 standalone, and that
>> does
>> not work in camel 2.0.0 deployed on SMX4 (code provided below).
>> I have read on forums that this might come from class-path issues.
>> However I
>> can't see where it comes from. Could someone help ?
>> 
>> To deploy the endpoint I do:
>> 
>> // in Test:
>> public void doTest() { builder.deployEndpoint(); }
>> // in DynamicBuilder:
>> public void deployEndpoint() {
>>         CamelContext context = getContext();
>>         
>>         final String endpointUri = "cxf:" +
>> "http://localhost:9000/service"
>> + "?serviceClass=" + SERVICE_CLASS;        
>>         def = from( endpointUri );
>>         def.process( new CallbackProcessor() );
>>         context.addRouteDefinitions( Arrays.asList( def ) );
>>         context.startRoute( def );
>> }
>> 
>> This works OK in camel standalone, and in SMX4 this generates the
>> following
>> error:
>> 
>> org.apache.camel.RuntimeCamelException: java.lang.RuntimeException: Could
>> not find destination factory for transport
>> http://schemas.xmlsoap.org/soap/h
>> ttp
>>         at
>> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1011)
>>         at
>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
>>         at
>> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:469)
>>         at
>> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
>>         at
>> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
>>         at
>> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
>>         at
>> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
>>         at
>> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
>>         at
>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.finishRefresh(AbstractDelegatedExecutionApplicationCo
>> ntext.java:380)
>>         at
>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.ja
>> va:346)
>>         at
>> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>>         at
>> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplication
>> Context.java:308)
>>         at
>> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(Dependen
>> cyWaiterApplicationContextExecutor.java:138)
>>         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:118)
>>         at
>> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167)
>>         at
>> org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:108)
>>         at
>> org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:97)
>>         at
>> org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:57)
>>         at
>> org.apache.camel.impl.DefaultRoute.getServicesForRoute(DefaultRoute.java:81)
>>         at
>> org.apache.camel.impl.RouteService.doStart(RouteService.java:77)
>>         at
>> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>>         at
>> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:825)
>>         at
>> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99)
>>         at
>> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:119)
>>         ... 12 more
>> 
>> My camel context:
>> 
>> 
>> <?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:cxf="http://camel.apache.org/schema/cxf"
>>        xsi:schemaLocation="
>>        http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans-2.5.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
>>     ">
>>    <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-http-jetty.xml"
>> />
>> 
>>     <bean id="builder" class="test.DynamicRouteBuilder"/>
>>    <camelContext id="test_context"
>> xmlns="http://camel.apache.org/schema/spring">
>>        <routeBuilder  ref="builder"/>
>>    </camelContext>
>>    
>>    <bean id="test" class="test.Test" init-method="doTest"
>> destroy-method="tearDown">
>>    	<property name="builder" ref="builder"/>
>>    </bean>
>> </beans>
>> 
>> And my import directives:
>>                         javax.jws,
>>                         javax.wsdl,
>>                         javax.xml.bind,
>>                         javax.xml.bind.annotation,
>>                         javax.xml.namespace,
>>                         javax.xml.soap,
>>                         javax.xml.ws,
>>                         META-INF.cxf,
>>                         META-INF.cxf.osgi,
>>                         
>> 			org.apache.cxf,
>> 			org.apache.cxf.binding,
>> 			org.apache.cxf.binding.soap,
>> 			org.apache.cxf.binding.soap.interceptor,
>> 			org.apache.cxf.binding.soap.model,
>> 			org.apache.cxf.binding.xml,
>> 			org.apache.cxf.bindings.xformat,
>> 			org.apache.cxf.common.classloader,
>> 			org.apache.cxf.common.i18n,
>> 			org.apache.cxf.common.logging,
>> 			org.apache.cxf.common.util,
>> 			org.apache.cxf.configuration,
>> 			org.apache.cxf.configuration.security,
>> 			org.apache.cxf.configuration.spring,
>> 			org.apache.cxf.databinding,
>> 				org.apache.cxf.endpoint,
>> 				org.apache.cxf.feature,
>> 				org.apache.cxf.frontend,
>> 				org.apache.cxf.headers,
>> 				org.apache.cxf.helpers,
>> 				org.apache.cxf.interceptor,
>> 				org.apache.cxf.io,
>> 				org.apache.cxf.jaxrs,
>> 				org.apache.cxf.jaxrs.client,
>> 				org.apache.cxf.jaxrs.model,
>> 				org.apache.cxf.jaxrs.utils,
>> 				org.apache.cxf.jaxws,
>> 				org.apache.cxf.jaxws.context,
>> 				org.apache.cxf.message,
>> 				org.apache.cxf.phase,
>> 				org.apache.cxf.service,
>> 				org.apache.cxf.service.factory,
>> 				org.apache.cxf.service.invoker,
>> 				org.apache.cxf.service.model,
>> 				org.apache.cxf.staxutils,
>> 				org.apache.cxf.ws.addressing,
>> 				org.apache.cxf.wsdl,
>> 				org.apache.cxf.wsdl11,
>> 				org.apache.cxf.transport,
>> 				org.apache.cxf.transport.http,
>> 				org.apache.cxf.transport.http_jetty,
>> 				org.apache.cxf.transport.http.policy,
>>                         
>>                         org.apache.cxf.bus,
>>                         org.apache.cxf.bus.spring,
>>                         org.apache.cxf.bus.resource,
>>                         org.apache.cxf.resource,
>>                         org.springframework.beans.factory.config,
>>                         org.apache.servicemix.common.osgi,
>>                         *
>> 
>> 
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Classpath-problem-with-camel-cxf-and-OSGi-tp26612544p26621724.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Classpath problem with camel-cxf and OSGi

Posted by Willem Jiang <wi...@gmail.com>.
Hi,

This issue is related the get default bus issue[1], and it should be 
fixed in the coming out Camel 2.1.0.
[1]https://issues.apache.org/activemq/browse/CAMEL-2216

Willem

TheWinch wrote:
> Hi,
> 
> I'm trying to deploy dynamically endpoints using camel-cxf. I have an
> example that works perfectly well in camel 2.0.0 standalone, and that does
> not work in camel 2.0.0 deployed on SMX4 (code provided below).
> I have read on forums that this might come from class-path issues. However I
> can't see where it comes from. Could someone help ?
> 
> To deploy the endpoint I do:
> 
> // in Test:
> public void doTest() { builder.deployEndpoint(); }
> // in DynamicBuilder:
> public void deployEndpoint() {
>         CamelContext context = getContext();
>         
>         final String endpointUri = "cxf:" + "http://localhost:9000/service"
> + "?serviceClass=" + SERVICE_CLASS;        
>         def = from( endpointUri );
>         def.process( new CallbackProcessor() );
>         context.addRouteDefinitions( Arrays.asList( def ) );
>         context.startRoute( def );
> }
> 
> This works OK in camel standalone, and in SMX4 this generates the following
> error:
> 
> org.apache.camel.RuntimeCamelException: java.lang.RuntimeException: Could
> not find destination factory for transport http://schemas.xmlsoap.org/soap/h
> ttp
>         at
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1011)
>         at
> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:121)
>         at
> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:469)
>         at
> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
>         at
> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
>         at
> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
>         at
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
>         at
> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
>         at
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.finishRefresh(AbstractDelegatedExecutionApplicationCo
> ntext.java:380)
>         at
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.ja
> va:346)
>         at
> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>         at
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplication
> Context.java:308)
>         at
> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(Dependen
> cyWaiterApplicationContextExecutor.java:138)
>         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:118)
>         at
> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:167)
>         at
> org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:108)
>         at
> org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:97)
>         at
> org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:57)
>         at
> org.apache.camel.impl.DefaultRoute.getServicesForRoute(DefaultRoute.java:81)
>         at org.apache.camel.impl.RouteService.doStart(RouteService.java:77)
>         at
> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>         at
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:825)
>         at
> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99)
>         at
> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:119)
>         ... 12 more
> 
> My camel context:
> 
> 
> <?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:cxf="http://camel.apache.org/schema/cxf"
>        xsi:schemaLocation="
>        http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.5.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
>     ">
>    <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-http-jetty.xml" />
> 
>     <bean id="builder" class="test.DynamicRouteBuilder"/>
>    <camelContext id="test_context"
> xmlns="http://camel.apache.org/schema/spring">
>        <routeBuilder  ref="builder"/>
>    </camelContext>
>    
>    <bean id="test" class="test.Test" init-method="doTest"
> destroy-method="tearDown">
>    	<property name="builder" ref="builder"/>
>    </bean>
> </beans>
> 
> And my import directives:
>                         javax.jws,
>                         javax.wsdl,
>                         javax.xml.bind,
>                         javax.xml.bind.annotation,
>                         javax.xml.namespace,
>                         javax.xml.soap,
>                         javax.xml.ws,
>                         META-INF.cxf,
>                         META-INF.cxf.osgi,
>                         
> 			org.apache.cxf,
> 			org.apache.cxf.binding,
> 			org.apache.cxf.binding.soap,
> 			org.apache.cxf.binding.soap.interceptor,
> 			org.apache.cxf.binding.soap.model,
> 			org.apache.cxf.binding.xml,
> 			org.apache.cxf.bindings.xformat,
> 			org.apache.cxf.common.classloader,
> 			org.apache.cxf.common.i18n,
> 			org.apache.cxf.common.logging,
> 			org.apache.cxf.common.util,
> 			org.apache.cxf.configuration,
> 			org.apache.cxf.configuration.security,
> 			org.apache.cxf.configuration.spring,
> 			org.apache.cxf.databinding,
> 				org.apache.cxf.endpoint,
> 				org.apache.cxf.feature,
> 				org.apache.cxf.frontend,
> 				org.apache.cxf.headers,
> 				org.apache.cxf.helpers,
> 				org.apache.cxf.interceptor,
> 				org.apache.cxf.io,
> 				org.apache.cxf.jaxrs,
> 				org.apache.cxf.jaxrs.client,
> 				org.apache.cxf.jaxrs.model,
> 				org.apache.cxf.jaxrs.utils,
> 				org.apache.cxf.jaxws,
> 				org.apache.cxf.jaxws.context,
> 				org.apache.cxf.message,
> 				org.apache.cxf.phase,
> 				org.apache.cxf.service,
> 				org.apache.cxf.service.factory,
> 				org.apache.cxf.service.invoker,
> 				org.apache.cxf.service.model,
> 				org.apache.cxf.staxutils,
> 				org.apache.cxf.ws.addressing,
> 				org.apache.cxf.wsdl,
> 				org.apache.cxf.wsdl11,
> 				org.apache.cxf.transport,
> 				org.apache.cxf.transport.http,
> 				org.apache.cxf.transport.http_jetty,
> 				org.apache.cxf.transport.http.policy,
>                         
>                         org.apache.cxf.bus,
>                         org.apache.cxf.bus.spring,
>                         org.apache.cxf.bus.resource,
>                         org.apache.cxf.resource,
>                         org.springframework.beans.factory.config,
>                         org.apache.servicemix.common.osgi,
>                         *
> 
>