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.
