webservice服务器端拿到客户端发送的SOAPHeader(备忘)


SOAPHeader header = MessageContext.getCurrentMessageContext().getEnvelope().getHeader();
OMElement ole = header.getFirstElement();
Iterator it = (Iterator)ole.getChildElements();
while(it.hasNext()){
OMElement ome = (OMElement)it.next();
System.out.println(ome.getLocalName()+" "+ome.getText());
}
Java中,可以通过以下步骤获取客户端发送SOAP Header: 1. 在服务端的Web Service实现类中,添加一个参数为javax.xml.ws.WebServiceContext类型的构造方法,用于获取WebServiceContext实例。 2. 在服务端的Web Service实现类中,定义一个带有@RequestHeader注解的方法,用于获取SOAP Header信息。例如: ``` @WebService public class MyWebService { private WebServiceContext context; public MyWebService(@Resource WebServiceContext context) { this.context = context; } @WebMethod public String myMethod(@RequestHeader(name="MyHeader") String myHeaderValue) { // 获取SOAP Header中名为MyHeader的值 return "Header value is: " + myHeaderValue; } } ``` 3. 在客户端调用Web Service时,在SOAP消息中添加Header信息。例如: ``` // 创建一个SOAP消息 SOAPMessage soapMessage = MessageFactory.newInstance().createMessage(); // 创建一个SOAP Header SOAPHeader soapHeader = soapMessage.getSOAPHeader(); // 在SOAP Header中添加一个名为MyHeader的元素 QName qname = new QName("http://example.com/mynamespace", "MyHeader"); SOAPHeaderElement soapHeaderElement = soapHeader.addHeaderElement(qname); // 设置MyHeader的值 soapHeaderElement.setValue("MyHeaderValue"); // 调用Web Service方法 MyWebService myWebService = new MyWebService(); myWebService.myMethod("MyHeaderValue"); ``` 在服务端的@WebMethod注解中,可以使用@RequestHeader注解获取SOAP Header中指定的元素值。例如,@RequestHeader(name="MyHeader")将获取名为MyHeader的元素值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值