0

我正在尝试通过扩展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和获取 SOAP 消息的方法是org.apache.connector.Response什么?

4

2 回答 2

1

由于自定义阀是在 Axis2 接收请求之前执行的,因此您将无法访问 Axis2 解析的 SOAP 消息。您唯一能做的就是自己解析消息,然后将原始消息的副本传递给 Axis2(如果您的 Valve 没有修改该消息)或重新序列化该消息(如果您的 Valve 修改该消息)。

请注意,与其他用户所说的相反,Axis2 文档中没有任何内容可以帮助您做到这一点。但是,根据您的用例(您没有详细描述),您可能能够使用 Axis2 处理程序来实现您的目标。当然,Axis2 处理程序在 Axis2 文档中进行了描述。

于 2012-06-17T20:24:03.047 回答
0

执行此操作的方式与编写 Servlet 或 Filter 时提取 SOAP 消息的方式相同:org.apache.catalina.connector.RequestimplementsHttpServletRequestorg.apache.connector.Responseimplements HttpServletResponse,因此请像往常一样使用它们。

如果您不知道如何从 中提取 SOAP 消息HttpServletRequest,则必须阅读 Axis2 文档。

于 2012-06-15T16:03:51.097 回答