问题标签 [enterprise-integration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
157 浏览

apache-camel - 使用esb的原因是什么

我是企业集成和 esb 概念的新手。

我正在开展一个项目,其中包括与不同系统的一些集成(例如 Sap,一个文件管理系统,该项目将使用 14 个外部 Web 服务。我将创建一个 Web 服务项目来使用这些外部服务)。

我可以编写一个使用 14 个外部服务的 Web 服务,并且可以在我的项目中使用这些 Web 服务。为什么我必须使用 esb ?哪个场景

我想明白,什么时候必须使用 esb?对我来说有什么好处?

0 投票
1 回答
74 浏览

apache-camel - Apache camel - EIP 设计查询

我有一个与 EIP 设计相关的查询。我需要按块处理 csv 文件并调用 Rest API。完成整个文件的处理后,我需要调用另一个 Rest API,告诉处理完成。我希望处理路由所以如果终端系统不可用,我会在中间排队,重试将在代理级别发生。

我的流程如下。第一个流程:csv文件->按100条记录的块拆分->将消息放入队列

第二个流程(Transacted route):从队列中挑选消息 -> 调用其余 API

第二个流程已处理。由于我正在中断流程并且它是异步的,因此我不确定如何调用完成调用。我没有持久存储每个块处理的状态。

无论如何我可以使用 JMS 功能或 Camel 来实现它吗?

0 投票
1 回答
2119 浏览

apache-camel - 文件组件(Apache camel)delete=true 参数在 Windows 中不起作用

Apache Camel File 组件在 Windows7 中无法正常运行,而在 Linux 中运行时没有任何问题。

我的要求:

文件处理后,必须从目录中删除文件。在 Windows 中,由于.camelLock文件无法正确删除。

多次尝试后,只有 Apache camel 可以从目录中删除文件。如果尝试未能从目录中删除文件,则它会引发异常。

如果我在目录中只有一个文件,它的工作没有任何问题,但如果我有多个文件,那么它会抛出一个异常。

应用环境:

我在 Tomcat 服务器中部署了 Apache camel 应用程序。

阿帕奇骆驼版本:2.17.1

阿帕奇骆驼路线:

在 Windows 中,我收到以下错误:

在此处输入图像描述

1|2017-11-14 17:56:34,828|11-01-41|default|WARN
|yes||oaccfGenericFileOnCompletion|file.analysis.input|提交期间出错。交换 [ID-51741-1510678404569-9-22]。原因:[org.apache.camel.component.file.GenericFileOperationFailedException - 无法删除文件:GenericFile[C:\var\opt\irs\message\661.zip]] org.apache.camel.component.file.GenericFileOperationFailedException:无法删除文件:在 org.apache.camel.component.file.strategy.GenericFileDeleteProcessStrategy.commit(GenericFileDeleteProcessStrategy.java:89) 在 org.apache.camel 的 GenericFile[C:\var\opt\irs\message\661.zip] .component.file.GenericFileOnCompletion.processStrategyCommit(GenericFileOnCompletion.java:127)

类似问题: Camel 2.15 文件锁Camel 2.14.2 不删除 Windows 上的文件删除移动文件

0 投票
1 回答
971 浏览

spring - 拆分大流时的Spring集成背压错误

目标是将大型 json.gz 文件(4 GB 压缩,大约 12 GB 未压缩,1200 万行)从 Web 服务器直接流式传输到数据库,而无需在本地下载。由于 Spring 集成出站网关不支持 gzip 格式,我自己使用 okhttp 自动解压响应:

在集成流程中:

输出通道在运行时使用由网桥轮询的无界队列连接。这是为了方便测试,以便队列可以替换为DirectChannel用于测试。

我在这里有几个疑问。

  1. 我不确定在 bean 名称中使用 SPEL 的动态绑定是否有效,但我不知道如何验证它。
  2. 由于队列是无界的,我能想到的就是轮询不够快。但是,该异常表明分离器在跟上时遇到了问题。
0 投票
2 回答
39 浏览

wso2 - 禁用代理服务创建访问 wso2ei

有谁知道如何在 wso2ei 中禁用用户创建和删除代理的访问权限?

谢谢你。

0 投票
2 回答
396 浏览

spring - spring-integration-aws 动态文件下载

我需要根据消息内容从 S3 下载文件。换句话说,要下载的文件以前是未知的,我必须在运行时搜索并找到它。S3StreamingMessageSource似乎不太合适,因为:

  1. 它依赖于轮询,因为我需要等待消息。
  2. 我找不到S3StreamingMessageSource在流程中间动态创建的任何方法。gateway(IntegrationFlow)看起来很有趣,但我需要的是一个gateway(Function<Message<?>, IntegrationFlow>)不存在的。

另一个候选者是S3MessageHandler但它不支持列出查找所需文件所需的文件。

我可以直接使用 AWS API 实现我自己的消息处理程序,只是想知道我是否遗漏了什么,因为这似乎不是一个不寻常的要求。毕竟,并非每个应用程序都只是坐在那里并不断轮询 S3 以获取新文件。

0 投票
1 回答
293 浏览

java - 以成功路线为先决条件的路线(骆驼)

我目前有以下骆驼路线:

仅当先前的路由成功时才需要向收件人发送文件。

但是,在运行该路线时,我得出的结论是 onCompletion() 块中的 .to 也从输入文件夹中读取,但文件已经消失,因此无法将它们拾取并将它们写入收件人。(我不能在 from 处设置 noop=true,因为我确实希望文件在发送给收件人之后消失......)

那么我们如何将文件路由给收件人,以之前成功的路由为先决条件呢?

0 投票
0 回答
317 浏览

java - 在 Apache Camel 中获取端点详细信息

设置了轮询机制以选择端点,我们如何获得骆驼路由器发送请求的端点?

这个问题会更容易例如,

假设我有 3 个路由器指向的端点。我想获取请求到达的端点?尝试了几种生产者模板的内置方法来检索它们

. 但是什么都没有出现。提前致谢。

0 投票
1 回答
2980 浏览

java - 错误通道中的 MessageHandlingException 消息

我编写了一个异常处理程序类,它查看默认 Spring IntegrationerrorChannel的传入消息类型Message<TradeProcessingContext> message

我有如下处理程序实现:

这调用了父级process()

我知道org.springframework.messaging.MessageHandlingException: nested exception is java.lang.ClassCastException当类型为Message<MessageHandlingException> messagein时我可以得到handleTradeError()

我该如何改进这种方法,以便也处理此类错误,或者tradeprocessingContext也从这种类型中提取底层?

0 投票
2 回答
1511 浏览

routes - Apache骆驼路线不调用另一条骆驼路线

我有三个骆驼路线单独运行良好,我试图在第一条路线完成后调用第二条路线,但是一旦我使用 URL 调用第二条路线,它没有被启动,事件第三条路线如何运行jetty:http://localhost:8181/mongoSelect,我没有错误控制台也是如此。我已经尝试过from("jetty:http://localhost:8181/mongoSelect")使用direct:组件进行更改,请帮助我。

常数

第一条路线

第二条路线

第三条路线

我已经尝试过这种方法:

第一条路线

第二条路线

更新:我的代码发生了一些奇怪的事情,当我使用direct:mongoSelect组件从第一条路线调用第二条路线时,控制正在移动,但没有响应的数据.to(QUERY_MONGO_DB),但是如果我使用from("jetty:http://localhost:8181/mongoSelect")而不是from("direct:mongoSelect")第二条路线,我正在获取数据作为回应。

第一条路线

第二条路线