Hi, I am trying to do an aggregation pattern using camel
Here is my java code and here is the camel-context.xml
<camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
<routeBuilder ref="myBuilder" />
</camelContext>
<bean id="myBuilder" class="com.nsn.hiq.test.MyRouteBuilder"/>
public class MyRouteBuilder extends RouteBuilder {
public void configure() {
// TODO create Camel routes here. For example:-
//
// from("activemq:test.MyQueue").to("file://test");
/*from("timer://tutorial?fixedRate=true&delay=3000&period=10000") // 1
.setBody(constant("<message>Hello world!</message>"))
// 2
.to("log:tutorial");
*/
from("jbi:service:http://servicemix.apache.org/test/camel-receiver")
.aggregate().xpath("/p:snmp-getResponse/p:NE/@ipaddr",
String.class)
.completionSize(1)
//.to("jbi:endpoint:http://servicemix.apache.org/test/file_sender_getbulk/endpoint");
// 3
.to("log:tutorial");
}
}
To compile the java code I need camel-core at least 2.3.0
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>2.5.6</version>
</dependency>
However the moment I give this came-core 2.3.0 and try to deploy it in
servicemix 3.3.1 I get a depolyment error.
I tried to use the se\pring xml without the java code, but I have not
figured how to get the correlationExpression proper as I am getting no
result out of it. Any suggestions appreciated ( I cannot change the
servicemix version as this is outside my control)
<component-task-result
xmlns="http://java.sun.com/xml/ns/jbi/management-message"
>
<component-name>servicemix-camel</component-name>
<component-task-result-details>
<task-result-details>
<task-id>deploy</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
<task-status-msg>
<msg-loc-info>
<loc-token/>
<loc-message>Could not deploy xbean service unit</loc-message>
</msg-loc-info>
</task-status-msg>
<exception-info>
<nesting-level>1</nesting-level>
<msg-loc-info>
<loc-token/>
<loc-message>Error creating bean
with na
me 'camel:beanPostProcessor': Cannot resolve reference to bean 'camel' while
set
ting bean property 'camelContext'; nested exception is
org.springframework.beans
.factory.BeanCreationException: Error creating bean with name 'camel':
Invocatio
n of init method failed; nested exception is java.lang.NoSuchMethodError:
com.ns
n.hiq.test.MyRouteBuilder.from(Ljava/lang/String;)Lorg/apache/camel/model/RouteD
efinition;</loc-message>
<stack-trace><![CDATA[org.springframewor
k.beans.factory.BeanCreationException: Error creating bean with name
'camel:bean
PostProcessor': Cannot resolve reference to bean 'camel' while setting bean
prop
erty 'camelContext'; nested exception is
org.springframework.beans.factory.BeanC
reationException: Error creating bean with name 'camel': Invocation of init
meth
od failed; nested exception is java.lang.NoSuchMethodError:
com.nsn.hiq.test.MyR
outeBuilder.from(Ljava/lang/String;)Lorg/apache/camel/model/RouteDefinition;
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver
.resolveReference(BeanDefinitionValueResolver.java:275)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver
.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:264)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:261)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:185)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:164)
at
org.springframework.context.support.AbstractApplicationContext.getBea
n(AbstractApplicationContext.java:880)
at
org.springframework.context.support.AbstractApplicationContext.regist
erBeanPostProcessors(AbstractApplicationContext.java:605)
at
org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:365)
at
org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(Abstr
actXBeanDeployer.java:87)
at
org.apache.servicemix.camel.CamelSpringDeployer.deploy(CamelSpringDep
loyer.java:77)
at
org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServ
iceUnitManager.java:88)
at
org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServic
eUnitManager.java:69)
at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAs
sembly(DeploymentService.java:520)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServi
ceAssembly(AutoDeploymentService.java:349)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchi
ve(AutoDeploymentService.java:255)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDire
ctory(AutoDeploymentService.java:658)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(
AutoDeploymentService.java:63)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoD
eploymentService.java:622)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Caused by: org.springframework.beans.factory.BeanCreationException: Error
creati
ng bean with name 'camel': Invocation of init method failed; nested
exception is
java.lang.NoSuchMethodError:
com.nsn.hiq.test.MyRouteBuilder.from(Ljava/lang/St
ring;)Lorg/apache/camel/model/RouteDefinition;
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:264)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:261)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:185)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:164)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver
.resolveReference(BeanDefinitionValueResolver.java:269)
... 27 more
Caused by: java.lang.NoSuchMethodError:
com.nsn.hiq.test.MyRouteBuilder.from(Lja
va/lang/String;)Lorg/apache/camel/model/RouteDefinition;
at com.nsn.hiq.test.MyRouteBuilder.configure(MyRouteBuilder.java:41)
at
org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.j
ava:201)
at
org.apache.camel.builder.RouteBuilder.getRouteList(RouteBuilder.java:
175)
at
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelConte
xt.java:400)
at
org.apache.camel.spring.CamelContextFactoryBean.installRoutes(CamelCo
ntextFactoryBean.java:522)
at
org.apache.camel.spring.CamelContextFactoryBean.afterPropertiesSet(Ca
melContextFactoryBean.java:266)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 37 more
]]></stack-trace>
</msg-loc-info>
</exception-info>
</task-result-details>
</component-task-result-details>
</component-task-result>
</jbi-task-result>
</jbi-task>
at
org.apache.servicemix.jbi.framework.ManagementSupport.failure(Managem
entSupport.java:125)
at
org.apache.servicemix.jbi.framework.ManagementSupport.failure(Managem
entSupport.java:111)
at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAs
sembly(DeploymentService.java:555)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServi
ceAssembly(AutoDeploymentService.java:349)
... 6 more
Here is the spring xml for camel which does not throw any errors, but does
not seem to work properly
<camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
<route>
<from
uri="jbi:service:http://servicemix.apache.org/test/camel-receiver" />
<aggregate completionSize="1" groupExchanges="true" >
<correlationExpression>
<jxpath>/p:snmp-getResponse/p:NE/@ipaddr</jxpath>
</correlationExpression>
<to
uri="jbi:endpoint:http://servicemix.apache.org/test/file_sender_getbulk/endpoint"
/>
<to uri="log:tutorial"/>
</aggregate>
</route>
</camelContext>
--
View this message in context:
http://servicemix.396122.n5.nabble.com/servicemix-3-3-1-and-camel-core-2-3-0-tp1624310p1624310.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.