1

我在尝试解决几天的骆驼路线时遇到问题。

由于我不是此技术问题的专家,因此可能会遗漏您需要了解的信息...

首先,我的路由的目标是通过端点连接到远程服务器,通过 jaxb 编组从 xml 请求中请求 xml 响应。

这条路线没什么特别的,就是下面这条:

routeX.from("direct:requeteObjects)
.setHeader("element")
.constant(element)
.to("bean:importStructureI2VGestionnaireImpl?method=sendRequestObjects)                 
.to(endpoint)
.to("bean:importGestionnaireImpl?method=" + getObjects)

服务器按部分发送响应:例如,我期待 3000 个对象,由 30 个对象的包接收。

我创建请求“sendRequest”的方法被更新并请求下一个对象。

处理响应后,我将此请求发送回端点,该端点获取响应,该响应被发送到处理响应的 getObjects 方法。

一切正常,我收到了回复。但是在 5 次请求/响应之后,进入端点后,什么也没有发生。调试代码,看起来我的路由中有一个循环,因为代码在 AsyncProcessor 类、进程方法等中继续运行。没有日志,什么都没有。它不会停止。

我不知道为什么会这样。我认为这可能是因为我使用了相同的路由定义。所以我为每个请求创建了一个路由,停止并删除旧的。有了这个,我得到了 6 个回复。但是,同样的问题发生了。

我尝试设置上下文最大端点缓存大小和上下文最大缓存池大小,将默认值乘以 10。我检查了是否考虑了这些值:它们是。但是,我仍然遇到同样的问题。

此外,交换对象始终是一个新对象,因此我的响应永远不会堆积在一个大交换对象中。

你知道问题可能出在哪里吗?上下文会变得太大吗?还是终点?我应该去哪里看?

谢谢您的回答。如果您需要更多信息,我很乐意添加。

PS:我尝试在本主题中应用答案:RouteContext 内的骆驼路线无限执行,但没有变化:-(

4

0 回答 0