不要使用 JAX-RPC 处理程序

此规则会标记对下列项的引用: <handler> 元素内 web.xml , webservicesclient.xml , webservices.xml ejb-jar.xml 格式的文件。 处理程序是应用于每个请求或响应的附加处理单元。 它们可以串联在一起、 允许多个处理程序依次处理一个请求。 当客户端发送请求时,请求会按照部署描述符中指定的顺序由每个处理程序处理,然后再发送到提供程序。 由每个处理程序按照部署描述符中指定的顺序处理,然后再发送给提供程序。 例如 例如,要记录每个客户端请求,可以定义一个处理程序,读取每个请求消息并将其写入 写入文件。 处理程序还可以修改请求和响应。 由于实现了下面列出的新类 的实现,处理程序类中所有重载或实现的方法都已更新。

处理程序 API 在 JAX-RPC 和 JAX-WS 之间有许多重大变化,其中包括 是
- 更改命名规则。 从 javax.xml.rpc.handler.Handler javax.xml.ws.handler.soap.SoapHandler .
- 拆除 HandlerInfo 反对
- 删除了处理程序之前需要实现/扩展的两个类。 这些是 javax.xml.rpc.handler.Handler javax.xml.rpc.handler.GenericHandler .处理程序现在必须执行 javax.xml.ws.handler.soap.SoapHandler javax.xml.ws.handler.LogicalHandler .

JAX-RPC 处理程序和 JAX-WS SOAPHandlers 在实现上的差异的一个例子是 LoggingHandler处理程序的示例。
使用 JAX-RPC 处理程序时,您的类声明应如下所示 这样:

importjavax.xml.rpc.handler.GenericHandler;
    
public ClassLoggingHandlerextendsGenericHandler{
在此执行日志处理程序
    }

并在 JAX-WS 中使用 Soap 处理程序定义相同的类:

importjavax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;
    
公共类LoggingHandler实现SOAPHandler<SOAPMessageContext>{
在此执行日志处理程序
    }