If it’s just going to be a simple straight through proxy, you’re likely better off to just do:
<camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri=“jetty:http://localhost:8080/HelloService" /> <to uri="http://localhost:8081/axis2/services/HelloService"/> </route> </camelContext> Simple stream of bytes comes in, gets sent to the axis2 service, response just streamed back. Dan On Nov 13, 2013, at 9:41 AM, madusanka <[email protected]> wrote: > I need to expose a web service using Camel. Scenario is like this. There are > three computers. Service provider, ServiceMix and service consumer are > deployed in these three computers (for development purposes all there are in > the localhost). > ServiceMix acts like a proxy here. I have already developed the provider and > consumer using Axis2. > > Steps I followed: > > (1)Created a project using the following maven command > > mvn archetype:generate > -DarchetypeGroupId=org.apache.camel.archetypes > -DarchetypeArtifactId=camel-archetype-spring -DarchetypeVersion=2.10.5 > -DgroupId=com.camel.examples > -DartifactId=HelloSerice -Dversion=1.0-SNAPSHOT > > > (2)Added the routing rule in camel-context.xml file > > "actualEndpoint" refers to the actual web service. > > <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.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"> > > <cxf:cxfEndpoint id="proxyEndpoint" > address="http://localhost:8080/HelloService"/> > > <cxf:cxfEndpoint id="actualEndpoint" > > address="http://localhost:8080/axis2/services/HelloService" > > wsdlURL="http://localhost:8080/axis2/services/HelloService?wsdl" > endpointName="tns:HelloServicePort" > serviceName="tns:HelloService" > xmlns:tns="http://tempuri.org/HelloService" /> > > > <camelContext xmlns="http://camel.apache.org/schema/spring"> > <route> > <from uri="cxf:bean:proxyEndpoint" /> > <to uri="cxf:bean:actualEndpoint"/> > </route> > </camelContext> > > </beans> > > > (3)But when I depolyed into ServiceMix, following exception is thrown. It > says to specify serviceClass. But the service provider is remote and written > in Axis2. Please help me to resolve this > > Exception in thread "SpringOsgiExtenderThread-23" > org.apache.camel.RuntimeCamelException: java.lang.IllegalArgumentException: > serviceClass must be specified > at > org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1326) > 2013-11-13 20:01:32,442 | ERROR | xtenderThread-23 | ContextLoaderListener > > | 82 - org.springframework.osgi.e at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:120) > xtender - 1.2.1 | Application context refresh failed > (OsgiBundleXmlApplicationContext(bundle=HelloSerice, config=osgibundle:/MET > at > org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:285) > A-INF/spring/*.xml)) > at > org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97) > org.apache.camel.RuntimeCamelException: java.lang.IllegalArgumentException: > serviceClass must be specified > at > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303) > at > org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1326)[100:org.apache.camel.camel-core:2.10.6] > at > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911) > at > org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235) > > at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:120)[102:org.apache.camel.camel-spring:2.10.6] > at > org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:285)[102:org.apache.camel.camel-spring:2.10.6] > at > org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)[73:org.springframework.context:3.0.7.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)[73:org.springframework.context:3.0.7.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)[73:org.springframework.context:3.0.7.RELEASE] > at > org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)[79:org.springframework.osgi.core:1.2.1] > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)[79:org.springframework.osgi.core:1.2.1] > at > org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)[79:org.springframework.osgi.core:1.2.1] > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)[79:org.springframework.osgi.core:1.2.1] > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)[82:org.springframework.osgi.extender:1.2.1] > at java.lang.Thread.run(Thread.java:662)[:1.6.0_26] > Caused by: java.lang.IllegalArgumentException: serviceClass must be > specified > at > org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:295)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.component.cxf.CxfSpringEndpoint.createServerFactoryBean(CxfSpringEndpoint.java:177)[173:org.apache.camel.camel-cxf:2.10.6] > at > org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:62)[173:org.apache.camel.camel-cxf:2.10.6] > at > org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:203)[173:org.apache.camel.camel-cxf:2.10.6] > at > org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:65)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:80)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.impl.RouteService.warmUp(RouteService.java:133)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:2011)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1939)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:1727)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1608)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1475)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:179)[102:org.apache.camel.camel-spring:2.10.6] > at > org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1443)[100:org.apache.camel.camel-core:2.10.6] > at > org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:228)[102:org.apache.camel.camel-spring:2.10.6] > at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:118)[102:org.apache.camel.camel-spring:2.10.6] > ... 10 more > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358) > at > org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) > at > org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320) > at > org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132) > at java.lang.Thread.run(Thread.java:662) > Caused by: java.lang.IllegalArgumentException: serviceClass must be > specified > at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:295) > at > org.apache.camel.component.cxf.CxfSpringEndpoint.createServerFactoryBean(CxfSpringEndpoint.java:177) > at > org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:62) > at > org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:203) > at > org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:65) > at > org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:80) > at org.apache.camel.impl.RouteService.warmUp(RouteService.java:133) > at > org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:2011) > at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1939) > at > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:1727) > at > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1608) > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1475) > at > org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:179) > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1443) > at > org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:228) > at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:118) > ... 10 more > > > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Exposing-a-Remote-Web-Service-written-in-Axis2-tp5743186.html > Sent from the Camel - Users mailing list archive at Nabble.com. -- Daniel Kulp [email protected] - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com
