我正在使用如下序列发送多部分/表单数据消息:
<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="PostMessagesBlockingSequence">
<property name="messageType" scope="axis2" type="STRING" value="multipart/form-data"/>
<property name="DECODE_MULTIPART_DATA" value="true" scope="axis2" type="BOOLEAN"/>
<call blocking="true">
<endpoint key="PostMessagesEndpoint"/>
</call>
<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
</sequence>
此序列是从自定义调解器调用的,该调解器从代理中作为处理程序调用。
但是 DECODE_MULTIPART_DATA 未传递到端点,这导致多部分数据未从 Base64 解码。
没有blocking =“true”我没有得到端点的响应
我正在使用 WSO2 Micro Integrator 4.1.0
提前致谢
我尝试了很多方法,但没有任何效果
Call Mediator 本质上是同步的。阻塞模式是一个实现级别的细节,通常对最终用户没有用处。当您将阻塞模式设置为 true 时,处理请求的下划线线程将被阻塞,不会返回到线程池。在非阻塞模式下,线程将被返回,但在这两种模式下,集成将不会继续,直到您收到后端的响应。因此集成将始终是同步的。当您处理消息轮询场景时,非阻塞模式可能会出现问题。 话虽如此,您应该始终尝试使用非阻塞模式,因为考虑到效率,这是推荐的方法。
对于您在非阻塞模式下遇到的问题,请尝试在呼叫调解器之前设置以下内容。
<property name="DISABLE_CHUNKING" value="true" scope="axis2" />