我有一个webservice jax-ws,我需要获取soap头,我这样做:
@Resource
private WebServiceContext context;
MessageContext msContext = context.getMessageContext();
SOAPMessageContext soapMsgContext = (SOAPMessageContext) msContext;
SOAPHeader soapHeader = soapMsgContext.getMessage().getSOAPHeader();
Iterator it=soapHeader.extractAllHeaderElements();但我在将MessageContext转换为SoapMessageContext时遇到了问题,而且我不能生成SoapHandler,因为我不能将对象从处理程序发送到webservice,因为要发送对象,我需要将对象放在应用程序范围内,而我不希望这样。
发布于 2016-02-01 23:12:05
我不知道您使用的是哪个版本的JAX-WS。
但
@WebMethod
public myResource(@WebParam(name = "MyHeader", header = true) String myHeader) {
...
}应该能行得通。
发布于 2013-09-27 03:53:41
期望接收的报头是什么?由于javax.xml.ws.handler.MessageContext也是一个Map<String, Object>,所以您可以打印所有内容:
import java.util.Map;
import javax.annotation.Resource;
import javax.jws.WebService;
import javax.xml.ws.WebServiceContext;
@WebService
public class HelloWS {
@Resource
private WebServiceContext ctx;
public String sayHello(String name) {
Map<String, Object> map = ctx.getMessageContext();
for (Object obj : map.entrySet()) {
System.out.println(obj);
}
return "Hello, " + name;
}
}https://stackoverflow.com/questions/19028262
复制相似问题