我们需要外部客户端调用我们的Spring集成入站webservice网关之一,我们需要立即以通用OK状态确认它们。同时,有效负载将提交给通道进行异步处理,我们不需要响应(电子邮件将根据某些业务验证发送)。
我们尝试使用异步网关和执行器通道(使用任务执行器),但无法想出如何使网关立即响应。在这两种情况下,它都作为一种单向Web服务工作,没有响应。
配置:
<context:component-scan base-package="com.myapp.springintegration" />
<channel id="helloWorldRequestChannel">
<dispatcher task-executor="taskExecutor"/>
</channel>
<channel id="helloWorldReplyChannel"/>
<task:executor id="taskExecutor" pool-size="2"/>
<gateway id="helloServiceGateway"
service-interface="com.myapp.springintegration.HelloService"
default-request-channel="helloWorldRequestChannel" default-reply-channel="helloWorldReplyChannel"/>
<service-activator input-channel="helloWorldRequestChannel" ref="helloServiceImpl" method="hello" />
我没有看到任何<代码>
<int-ws:inbound-gateway request-channel="requestChannel"/>
<int:recipient-list-router input-channel="requestChannel">
<int:recipient channel="response" />
<int:recipient channel="process" />
</int:recipient-list-router>
<int:transformer input-channel="response" expression="'OK'"/>
<int:channel id="process">
<int:dispatcher task-executor="testExecutor"/>
</int:channel>
您将请求发送到收件人列表路由器,该路由器将您的消息分发到其他两个通道。第一个(响应
)只是立即向WS返回简单的回复。第二个(进程)将消息转移到单独的线程,因此该通道的订阅者将在不阻塞WS
线程的情况下完成其工作。
希望我清楚。
我最近一直在研究Spring集成和AMQP(RabbitMQ),因为我需要用异步方法通信两个应用程序(中间件和后端),这样中间件在接收客户端调用时就不会阻塞。 我首先采用了一种更简单的方法,以同步方式实现这一点,这意味着我在中间件上有一个网关接口和一个出站网关(requiresReply=true),然后在后端有一个入站网关和一个服务激活器。这种初始方法工作得很好(我使用了Spring集成XML配
在Spring集成中是否可以保持通道同步(发送消息后获得确认)但同时处理更多消息(并行处理)而无需使用线程创建自己的代码(即ExecutorService执行和提交工作人员)并等待它们?我想通过FTP上传文件,但同时上传更多文件,而无需在代码中创建自己的线程。我需要知道所有文件何时上传(这就是我希望它是同步的原因)。是否可以通过Spring集成配置,如果可以,如何?
我一直在研究Spring集成文件支持,在这里我需要将文件从输入目录移动到输出目录。成功地将其移动到输出目录后,应该将其归档,然后从输入目录中删除。我正在使用下面的配置来实现这一点。 请纠正我,如果我的配置可以更好的方式。 Spring集成配置: 我在服务激活器中有代码,如果归档目录不可用,它应该终止应用程序。因此,在运行应用程序时,在第一次移动文件后,我已经删除了归档目录。然后,我将新文件放置在i
在Spring integration中,我必须处理动态通道创建,但当我调试应用程序时,我看到不同通道之间的“阻塞”问题。 我知道是一个公共通道,在父上下文中共享,但如何为每个子上下文开发一个完整的独立场景?。公共网关是问题所在吗? 我在Spring integration flow async中看到了post错误处理,但对于每个子级,我都有一个完整的分离环境,我希望利用这些动态分离的优势。这可能
我有一个Rest服务,并且使用Spring的RestTemplate和Apache HttpClient作为, 当Web服务返回204响应时,204响应之后的第二个服务调用将失败,并出现读取超时。 Spring网:4.3.5 我不知道原因。有什么帮助吗? 编辑:从调试日志, org . Apache . http . impl . conn . defaulthttpresponseparser;
我的任务是简单地制作一个控制器,当它们准备好时立即给我结果(下面的简单示例) 我想得到字符串的确切数量(例如1000个字符串,以某种方式为1秒)(实际上我需要得到func的结果,但为了简化任务,只是字符串) 因此,当我在控制器中收到一些请求时,我希望它能以这种方式在它们准备好后尽快给出答案(无需缓冲结果): 1秒钟 “一些绳子”- 1秒钟 “另一个”- 1秒钟 “第三个”- 1000秒 “一些绳子