我正在使用Apache Camel来帮助捕获第三方软件包发出的消息数据。在这个特定的示例中,我只需要捕获软件产生的数据,另一端没有接收器(真的没有“端”可去)。
因此,我尝试设置一个只有“from”端点而没有“to”端点的路由。显然,这是不正确的用法,因为我收到了以下异常:
[2018-08-15 11:08:03.205] ERROR: string.Launcher:191 - Exception
org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> From[mina:udp://localhost:9877?sync=false] <<< in route: Route(route1)[[From[mina:udp://localhost:9877?sync=false]] -... because of Route route1 has no output processors. You need to add outputs to the route such as to("log:foo").
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1063)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:196)
at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:974)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3301)
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3024)
at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:175)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2854)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2850)
at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2873)
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2850)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2819)
at {removed}.Launcher.startCamel(Launcher.java:189)
at {removed}.Launcher.main(Launcher.java:125)
Caused by: java.lang.IllegalArgumentException: Route route1 has no output processors. You need to add outputs to the route such as to("log:foo").
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1061)
... 13 more
我如何设置一个 Camel 路由,使我能够拦截(捕获)来自源的消息流量,而不将其发送到任何地方?不需要接收者。什么是一个适当的“到”端点,它只丢弃它接收到的所有东西?to("log:foo")
的异常建议。它有什么作用?
3条答案
按热度按时间ztmd8pv51#
您可以查看
Stub
组件是否有帮助http://camel.apache.org/stub.html
示例:
9udxz4iz2#
to(“log:foo”)的异常建议。这有什么作用?
它将您的路由消息发送到具有日志类型 * 组件 * 的 * 端点 *:(http://camel.apache.org/log.html)-基本上将消息内容(主体和/或标题和/或属性)转储到使用适当日志类别的日志文件的组件。
如果你只是想把收到的东西都放下,这是个不错的选择:
x3naxklr3#
显然,如果你在Linux或Unix下,你也可以重定向到
/dev/null
,就像这个例子:我不确定它是否可以在Windows上使用,但我不这么认为。
请注意语法:
to( "file:/dev/null")
不起作用,因为它指向名为null
的目录,但如果使用fileName选项,它将起作用。