WSO2中介器向用户返回错误消息
我目前正在尝试在WSO2 API管理器中编写java中介,以便在将消息发送到代理之前执行一些处理。 正常用例工作正常,但我遇到了一些异常问题 我希望能够从中介器向用户发送一条消息,其中包含一条消息和一个HTTP状态代码,但我看不到一种方法WSO2中介器向用户返回错误消息,wso2,wso2esb,wso2-am,Wso2,Wso2esb,Wso2 Am,我目前正在尝试在WSO2 API管理器中编写java中介,以便在将消息发送到代理之前执行一些处理。 正常用例工作正常,但我遇到了一些异常问题 我希望能够从中介器向用户发送一条消息,其中包含一条消息和一个HTTP状态代码,但我看不到一种方法 import org.apache.synapse.mediators.transform.PayloadFactoryMediator; public class MessageMediator extends PayloadFactoryMediator
import org.apache.synapse.mediators.transform.PayloadFactoryMediator;
public class MessageMediator extends PayloadFactoryMediator
{
@Override
public boolean mediate(org.apache.synapse.MessageContext synapseMessageContext)
{
boolean success = true;
try{
.... some processing
}
catch(Exception e)
{
success = false;
handleException(e.getMessage(), e, synapseMessageContext);
//write message back to user
}
return success;
}
}
这是我的代理:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="AMQPProxy"
transports="https http"
startOnLoad="true"
trace="enable">
<description/>
<target>
<endpoint>
<default />
</endpoint>
<inSequence>
<sequence key="MessageMediator"/>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
</proxy>
向用户返回错误的正确步骤是什么
谢谢如果您在不退出wso2 esb调用另一个服务的情况下从insequence本身返回错误,您可以按以下方式执行:
<payloadFactory media-type="json">
<format>{"Error":{"errorType":"BusinessError","details":"some details"}}</format>
<args/>
</payloadFactory>
<header name="To" scope="default" action="remove"/>
<property name="RESPONSE" value="true" scope="default" type="STRING"/>
<property name="HTTP_SC" value="400" scope="axis2" type="STRING"/>
<property name="messageType" expression="$trp:Accept" scope="axis2" type="STRING"/>
<send/>
{“Error”:{“errorType”:“BusinessError”,“details”:“some details”}
如果您要从outsequence返回错误,您可以使用makefault。请参见此处,您可以尝试在insequence中使用fault mediator,我还没有尝试过,但在发送insequence时,您需要使用