我需要将自定义突触处理程序映射到WSO2 EI 6.1.1中的特定API 。 我尝试了两种不同的方法来配置自定义突触处理程序以使用API
进行映射方法1:在EI_HOME / conf / synapse-handlers.xml中配置处理程序 这样处理程序应用于所有API。 参考:https://docs.wso2.com/display/EI600/Writing+a+Synapse+Handler
方法2:在API xml中配置处理程序
......</resource>
<handlers>
<handler class="org.test.TestHandler1"/>
</handlers>
</api>
这样在启动EI服务器时会导致错误。 看起来方法2在WSO2 ESB上是可能的,而不是WSO2 EI
寻找一种方法来做到这一点。 注意:我正在扩展AbstractSynapseHandler以创建自定义突触处理程序
提前致谢
答案 0 :(得分:0)
您提供的链接包含一个扩展 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文档。 https://docs.wso2.com/display/EI600/Securing+APIs