我正在尝试阅读mongodb集合并使用apache camel将数据插入到不同的集合中。我得到了java.lang.IllegalArgumentException: operation, writeConcern, writeConcernRef, dynamicity, outputType options cannot appear on a consumer endpoint
看起来操作属性有问题,请看一下。
骆驼路线
private static final String SOURCE = "mongodb:myDb?database=email_response&collection=emailResponse&operation=findAll&dynamicity=true&outputType=DBCursor";
private static final String DESTINATION = "mongodb:myDb?database=email_response&collection=emailResponse2&operation=save";
@Override
public void configure() throws Exception {
from(SOURCE)
.to(DESTINATION);
}
控制台日志
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-03-22 16:09:01.843 ERROR 4568 --- [ main] o.s.boot.SpringApplication : Application run failed
org.apache.camel.spring.boot.CamelSpringBootInitializationException: java.lang.RuntimeException: java.lang.IllegalArgumentException: operation, writeConcern, writeConcernRef, dynamicity, outputType options cannot appear on a consumer endpoint
at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:126) ~[camel-spring-boot-2.17.0.jar:2.17.0]
at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:41) ~[camel-spring-boot-2.17.0.jar:2.17.0]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:399) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:353) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:887) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:161) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at com.era.conf.ApplicationConfiguration.main(ApplicationConfiguration.java:12) [classes/:na]
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: operation, writeConcern, writeConcernRef, dynamicity, outputType options cannot appear on a consumer endpoint
at org.apache.camel.spring.boot.CamelSpringBootApplicationController.run(CamelSpringBootApplicationController.java:73) ~[camel-spring-boot-2.17.0.jar:2.17.0]
at org.apache.camel.spring.boot.CamelMainRunController$DaemonTask.run(CamelMainRunController.java:43) ~[camel-spring-boot-2.17.0.jar:2.17.0]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_102]
at org.apache.camel.spring.boot.CamelMainRunController.start(CamelMainRunController.java:36) ~[camel-spring-boot-2.17.0.jar:2.17.0]
at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:113) ~[camel-spring-boot-2.17.0.jar:2.17.0]
... 16 common frames omitted
Caused by: java.lang.IllegalArgumentException: operation, writeConcern, writeConcernRef, dynamicity, outputType options cannot appear on a consumer endpoint
at org.apache.camel.component.mongodb.MongoDbEndpoint.validateOptions(MongoDbEndpoint.java:176) ~[camel-mongodb-2.17.0.jar:2.17.0]
at org.apache.camel.component.mongodb.MongoDbEndpoint.createConsumer(MongoDbEndpoint.java:127) ~[camel-mongodb-2.17.0.jar:2.17.0]
at org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:69) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:98) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.RouteService.warmUp(RouteService.java:158) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3490) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3420) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3197) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3053) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:175) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2848) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2844) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2867) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2844) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2813) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.main.Main.doStart(Main.java:127) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.main.MainSupport.run(MainSupport.java:138) ~[camel-core-2.17.0.jar:2.17.0]
at org.apache.camel.spring.boot.CamelSpringBootApplicationController.run(CamelSpringBootApplicationController.java:68) ~[camel-spring-boot-2.17.0.jar:2.17.0]
... 20 common frames omitted
更新
private static final String SOURCE = "mongodb:myDb?database=email_response&collection=emailResponse&operation=findAll"
从 SOURCE 中删除dynamicity=true&outputType=DBCursor
。问题仍然存在。
答案 0 :(得分:0)
你不能将Spring Boot 2.0与Camel 2.17一起使用。 Spring Boot 2的官方支持将在下一个Apache Camel 2.22版本中发布。因此,为您的应用程序切换回Spring Boot 1.5.x.
另请参见本页顶部:http://camel.apache.org/camel-2210-release.html
已更新:好的,您的dynamicity=true
中不能包含SOURCE
选项,因此请将其删除。