我对以下路线有一些问题:
// from("cxf:....")...
from("direct:start").process(startRequestProcessor) // STEP 1
.choice()
.when(body().isNull())
.to("direct:finish")
.otherwise()
.split(body()) // STEP 2
.bean(TypeMapper.class) // STEP 3
.log("Goes to DynamicRouter:: routeByTypeHeader with header: ${headers.type}")
.recipientList().method(Endpoint1DynamicRouter.class, "routeByTypeHeader") // STEP 4
.ignoreInvalidEndpoints();
from("direct:endpoint2") // STEP 6
.log("Goes to DynamicRouter::routeByCollectionHeader with header: ${headers.collection}")
.recipientList().method(Endpoint2DynamicRouter.class, "routeByCollectionHeader")
.ignoreInvalidEndpoints();
from("direct:endpoint1.1") // STEP 5
.process(new DateRangeProcessor())
.to("direct:collections");
from("direct:endpoint1.2") // STEP 5
.process(new SingleProcessor())
.to("direct:collections");
from("direct:endpoint2.2") // STEP 7
.aggregate(header("collection" /** endpoint2.2 */), CollectionAggregationStrategy)
.completionSize(exchangeProperty("endpoint22"))
.process(new QueryBuilderProcessor())
.bean(MyService, "getDbCriteria")
.setHeader("collection", constant("endpoint2.1"))
.to("direct:endpoint2.1").end();
from("direct:endpoint2.1") // STEP 8
.aggregate(header("collection" /** endpoint2.1 */), CollectionAggregationStrategy)
.completionSize(exchangeProperty("CamelSplitSize"))
.to("direct:finish").end();
from("direct:finish")
.process(new QueryBuilderProcessor())
.bean(MyRepository, "findAll")
.log("ResponseData: ${body}").
marshal().json(JsonLibrary.Gson).end();
路线
我可以在调试器中看到有效的响应对象,但无论如何我都会遇到一个错误:
未找到java类的消息正文编写器。util。HashSet,ContentType:application/json
问题不在response对象中,因为它与其他路由一起工作,并且它不包含哈希集。
我猜route会将在第1步创建的哈希集发送到输出。。。
我的问题是:
>
两个接收者列表()都尝试将消息转发到无效的终结点(我必须使用。
组织。阿帕奇。骆驼NoSuchEndpointException:找不到:org的终结点。springframework。数据mongodb。果心查询Criteria@20f55e70,请检查您的类路径是否包含所需的Camel组件jar。
任何帮助都将不胜感激!谢谢
我觉得很奇怪,但是。聚合()函数不回复交换。它使用聚合策略,但总是回复传入的交换。这在阅读留档时不清楚,但你必须使用聚合策略和分裂()才能返回交换。
``` 所以,我的问题是--有没有一种干净的方法来结构和重构路由,而不是将它们集中在一个大的路由定义中?我也许可以创建一个参与者(路由器)的层次结构,主路由定义只是将其委托给路由器,随着我们深入参与者层次结构,我们会逐步添加更多的细节。但是否有一两种普遍接受的模式来组织路线呢?
我对JSONPath的工作有意见。我有两个非常相似的json对象,我正试图从中获取值。 本质上,对象大致看起来像这样: 我的问题是我需要运行这两条路径。对于Object2,这不会引起任何问题,因为第一个jsonpath不返回任何内容。 但是,对于object1,jsonpath 1返回所需的值。但是,对于该记录,jsonpath2还返回值Object。 有没有办法阻止这种事情发生?我需要两个jso
问题内容: 该程序在九次打印后完成: 如何停止进程(例如eclipse中的Java进程),因为它在9秒的时间限制后没有停止? 问题答案: 您遇到的问题是,取消哔声任务后,调度程序会保留活动线程。 如果存在活动的非守护程序线程,则JVM保持活动状态。 它使该线程保持不变的原因是您已在此行中告诉它这样做: 请注意以下文档: -即使在空闲状态下要保留在池中的线程数。 因此,您有两种可能的方法来导致J
问题内容: 我有一个goroutine,它调用一个方法,并在通道上传递返回的值: 如何停止这种goroutine? 问题答案: 编辑: 在意识到您的问题是关于将值发送到goroutine中的chan之前,我匆忙编写了此答案。 下面的方法可以与上面建议的其他chan一起使用,或者利用您已经拥有的chan双向的事实,您可以只使用一个… 如果您的goroutine仅用于处理来自chan的项目,则可以使用
问题内容: 要找出mysqld的启动命令(使用Mac),我可以这样做: 我得到以下输出,这使我可以启动mysql服务器。 我如何找到必要的命令以从命令行停止mysql? 问题答案: 尝试: 要么: 要么: 要么: 如果 在OSX中 安装 Launchctl,则 可以尝试: MacPorts 注意:重新启动后,此设置将持续存在。 家酿 二进制安装程序 我发现在:https : //stackover
我在研究项目中使用GraphDB Free 8.4.1,有时它会在没有任何明显原因的情况下被卡住。进程正在运行,但无法连接到存储库,甚至无法从工作台连接。它只是停止了反应。 我必须杀死GraphDB,然后再次运行它。 我知道,那个免费版本只允许2个并行查询,但我不认为它会卡住。我试图通过制作30个并行SPARQL查询来重现这一点,但一切都很好。 没有异常,错误日志中没有任何内容,主日志中没有任何内