SOAP处理程序是SOAP消息拦截器,它能够拦截传入或传出的SOAP消息并操纵其值。 例如,在客户端附加一个SOAP处理程序,它将为客户端发送的每个传出SOAP消息将客户端的计算机MAC地址注入SOAP标头块。 在服务器端,附加另一个SOAP处理程序,以从每个传入的SOAP消息中检索回SOAP标头块中的客户端MAC地址。 这样服务器端就可以确定允许哪台计算机访问已发布的服务。
本文分为三个部分:
- JAX-WS:服务器端的SOAP处理程序。 (本文)
- JAX-WS:客户端中的SOAP处理程序
- JAX-WS:针对客户端和服务器端的SOAP处理程序测试
服务器端的SOAP处理程序
在本文中,我们向您展示如何创建SOAP处理程序并将其附加到服务器端,以从每个传入的SOAP消息中检索SOAP标头块中的mac地址。 并进行验证以仅允许MAC地址为“ 90-4C-E5-44-B9-8F ”的计算机访问此发布的服务。 如果无效的客户端尝试访问服务,则将SOAPFaultException
返回给客户端。
本示例的目录结构
1. Web服务
一个简单的Web服务,带有getServerName()
方法以返回字符串。
文件:ServerInfo.java
package com.mkyong.ws;
import javax.jws.HandlerChain;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class ServerInfo{
@WebMethod
public String getServer