WSO2 MI DECODE_MULTIPART_DATA 在阻塞模式下不会传递到端点

问题描述 投票:0回答:1

我正在使用如下序列发送多部分/表单数据消息:

<?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

提前致谢

我尝试了很多方法,但没有任何效果

wso2 multipartform-data decode blocking wso2-micro-integrator
1个回答
0
投票

Call Mediator 本质上是同步的。阻塞模式是一个实现级别的细节,通常对最终用户没有用处。当您将阻塞模式设置为 true 时,处理请求的下划线线程将被阻塞,不会返回到线程池。在非阻塞模式下,线程将被返回,但在这两种模式下,集成将不会继续,直到您收到后端的响应。因此集成将始终是同步的。当您处理消息轮询场景时,非阻塞模式可能会出现问题。 话虽如此,您应该始终尝试使用非阻塞模式,因为考虑到效率,这是推荐的方法。

对于您在非阻塞模式下遇到的问题,请尝试在呼叫调解器之前设置以下内容。

<property name="DISABLE_CHUNKING" value="true" scope="axis2" />
© www.soinside.com 2019 - 2024. All rights reserved.