how to force text/plain in WSO2 call to an endpoint

时光毁灭记忆、已成空白 提交于 2020-01-06 06:07:12

问题


I have an enrich mediator in a sequence which has a value in a plain text. I have verified the value with log and ensured it is a text. But when I do the call after the enrich (see below) the API received the payload as a JSON with key always as "test": and then the plaintext value.

The API below expects any values, it just saves the body to a file. When I try to set a property before the call to state message type=text/plain it just hangs, does not do the call?

QUESTION: Does WSO2 mediator (wso2 framework) by nature expects the body to be either be JSON or XML? NOT Text/Plain allowed. If this is true, then I have to change my API to handle this issue I Think.

If someone can answer that question, I think I will know what to do. Because when I call the same API using a java class mediator with same options it works fine.

<call>
    <endpoint>
       <http method="POST" uri-template="http://xxxxxxx.38:8280/writefile"/>
    </endpoint>
</call>

回答1:


Thanks for the update. I had tried that before, when I had that the process was hanging and would not call the api. Here is what we did for it to work:

<payloadFactory media-type="xml">
        <format>
            <text xmlns="http://ws.apache.org/commons/ns/payload">$1</text>
        </format>
        <args>
            <arg evaluator="xml" expression="get-property('fileContent')"/>
        </args>
</payloadFactory>
<property name="messageType" scope="axis2" type="STRING" value="text/plain"/>

Thanks for the update folks. First time asking a questions and good to see getting response ASAP. Will try to contribute my learning and try to help .




回答2:


Add this before the call mediator.

<property name="messageType" value="text/plain" scope="axis2"/>


来源:https://stackoverflow.com/questions/50973853/how-to-force-text-plain-in-wso2-call-to-an-endpoint

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!