soap报头与处理
转至:http://www.blogjava.net/fool/archive/2006/11/13/80901.html
soap报头与处理
SOAPHeaderElement 对象中的属性决定了接收者怎样处理消息,可以认为header属性提供了扩展消息的方法,给出了像身份认证,支付,转发消息这样的相关的事情。JAX-RPC客户API(占位程序,动态代理,DII)均没有提供对SOAP文件头的支持,SAAJ API提供了支持。所有消息处理程序都必须实现javax.xml.rpc.handler.Handler接口,该接口有一系列的方法用以处理soap消息。javax.xml.rpc.handler.GenericHandler是一个缺省适配器类,创建我们自己的消息处理程序的时候从该类继承覆写我们自己感兴趣的方法就可以了。但每一个handler必须实现 getHeader()方法跟 handleRequest()方法.具体实现:
服务类HandlerServic:
消息处理类:
关于wstools工具的使用见j2ee web service开发(一).
在生成的webservice描述符文件中手工加入以下代码:
<handler>
<handler-name>CutomerHandler</handler-name>
<handler-class>handler.CutomerHandler</handler-class>
</handler> 用以配置处理soap消息头的类.
客户端代码:利用j2ee web serive开发(三)介绍的api不难写出saaj客户端代码就不再重复劳动了。这里只介绍JBOss ws利用DII实现soap消息头的处理,它扩展了标准jax-rpc api.