我正在尝试通过扩展org.apache.catalina.valves.ValveBase
类来为Apache Tomcat创建自定义Valve。它有方法public abstract void invoke(Request request,Response response)
。在我的Tomcat,容器中我有Axis2并且它有一个托管的Web服务。所以我的问题是找到一种方法使用这个自定义阀门将SOAP消息提取到该Web服务。那么使用参数org.apache.catalina.connector.Request
和org.apache.connector.Response
?
答案 0 :(得分:1)
由于在Axis2收到请求之前执行自定义阀门,您将无法访问Axis2解析的SOAP消息。您唯一能做的就是自己解析消息,然后将原始消息的副本传递给Axis2(如果您的阀门没有修改消息)或重新序列化消息(如果您的阀门修改了消息)。 / p>
请注意,与其他用户所说的相比,Axis2文档中没有任何内容可以帮助您实现这一目标。但是,根据您的用例(您没有详细描述),您可以使用Axis2处理程序来实现目标。当然,Axis2处理程序在Axis2文档中有描述。
答案 1 :(得分:0)
如果您正在编写Servlet或过滤器,则执行此操作的方式与提取SOAP消息的方式相同:org.apache.catalina.connector.Request
实现HttpServletRequest
和org.apache.connector.Response
实现HttpServletResponse
,所以像往常一样使用它们。
如果您不知道如何从HttpServletRequest
中提取SOAP消息,则必须阅读Axis2文档。