如何为 wso2 EI 6.1.1 中的特定 API 配置自定义突触处理程序
How to Configure custom synapsis handler for a specific API in wso2 EI 6.1.1
我需要将我的自定义突触处理程序 映射到 WSO2 EI 6.1.1 中的特定 API。
我尝试了以下两种不同的方法来配置自定义突触处理程序以映射 API
方法一:在EI_HOME/conf/synapse-handlers.xml配置handler
这样处理程序适用于所有 APIs。
参考:https://docs.wso2.com/display/EI600/Writing+a+Synapse+Handler
方法二:在API中配置handler xml
......</resource>
<handlers>
<handler class="org.test.TestHandler1"/>
</handlers>
</api>
这样会导致启动EI服务器时出错。
看起来方法 2 在 WSO2 ESB 上是可行的,而不是 WSO2 EI
正在寻找一种方法来做到这一点。
注意:我正在扩展 AbstractSynapseHandler 以创建自定义突触处理程序
提前致谢
您提供的 link 包含扩展 org.apache.synapse.AbstractSynapseHandler 的示例。但是如果你想要一个 API 级别的处理程序,你的处理程序应该实现 org.apache.synapse.rest.Handler 而不是扩展 org.apache.synapse.AbstractSynapseHandler .
下面是一个示例处理程序,它应该适用于您的情况。
import java.util.Map;
import org.apache.synapse.MessageContext;
import org.apache.synapse.rest.Handler;
public class ReqResponseHandler implements Handler {
@Override
public void addProperty(String s, Object o) {
}
@Override
public Map<?, ?> getProperties() {
return null;
}
@Override
public boolean handleRequest(MessageContext synapsisCtx) {
System.out.println("**********Handling Request*********");
return true;
}
@Override
public boolean handleResponse(MessageContext synapsisCtx) {
System.out.println("**********Handling Response*********");
return true;
}
}
您在 API xml 中配置处理程序的方式是正确的。 (但是,请注意,您不能通过 Web 界面向 API 添加处理程序。)
有关更多详细信息,请访问下面的 WSO2 文档 link。
https://docs.wso2.com/display/EI600/Securing+APIs
我需要将我的自定义突触处理程序 映射到 WSO2 EI 6.1.1 中的特定 API。 我尝试了以下两种不同的方法来配置自定义突触处理程序以映射 API
方法一:在EI_HOME/conf/synapse-handlers.xml配置handler 这样处理程序适用于所有 APIs。 参考:https://docs.wso2.com/display/EI600/Writing+a+Synapse+Handler
方法二:在API中配置handler xml
......</resource>
<handlers>
<handler class="org.test.TestHandler1"/>
</handlers>
</api>
这样会导致启动EI服务器时出错。 看起来方法 2 在 WSO2 ESB 上是可行的,而不是 WSO2 EI
正在寻找一种方法来做到这一点。 注意:我正在扩展 AbstractSynapseHandler 以创建自定义突触处理程序
提前致谢
您提供的 link 包含扩展 org.apache.synapse.AbstractSynapseHandler 的示例。但是如果你想要一个 API 级别的处理程序,你的处理程序应该实现 org.apache.synapse.rest.Handler 而不是扩展 org.apache.synapse.AbstractSynapseHandler . 下面是一个示例处理程序,它应该适用于您的情况。
import java.util.Map;
import org.apache.synapse.MessageContext;
import org.apache.synapse.rest.Handler;
public class ReqResponseHandler implements Handler {
@Override
public void addProperty(String s, Object o) {
}
@Override
public Map<?, ?> getProperties() {
return null;
}
@Override
public boolean handleRequest(MessageContext synapsisCtx) {
System.out.println("**********Handling Request*********");
return true;
}
@Override
public boolean handleResponse(MessageContext synapsisCtx) {
System.out.println("**********Handling Response*********");
return true;
}
}
您在 API xml 中配置处理程序的方式是正确的。 (但是,请注意,您不能通过 Web 界面向 API 添加处理程序。)
有关更多详细信息,请访问下面的 WSO2 文档 link。 https://docs.wso2.com/display/EI600/Securing+APIs