JAX-WS的Handler和Servlet的Filter相似,可以对所有WebServicer进行拦截,在Handler中可以记录日志、权限控制、对请求的SOAP消息进行加密,解密等。JAX-WS提供两个Handler接口,LogicalHandler和SOAPHandler。LogicalHandler处理的是Message Payload,只能够访问消息单元中的SOAP消息体。SOAPHandler处理的是整个SOAP消息(包含SOAP header和SOAP body),可以访问整个SOAP消息。
注册Handler的方式有下面几种:
使用HandlerResolver(客户端比较方便)
使用HandlerChain注解和配置文件
从WSDL生成
使用Custom Binding声明HandlerChain
实例代码http://download.csdn.net/detail/accountwcx/8922191
JAX-WS中WebService执行顺序如图所示
下面用SOAPHandler实现在WebService服务端记录请求内容和响应内容。
在classpath下建handler-chain.xml配置文件
在服务实现类上添加HandlerChain配置
服务实现接口
客户端发起index请求,服务端的记录