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.

Reply via email to