我正在使用JAX-WS Web服务。我使用wsimport生成了java文件。我正在使用的Web服务是安全的,只有当soap消息符合xsd定义时才会接受。
现在我的问题是我必须使用wsimport生成的类之一向Web服务发送请求。根据响应,我必须再向Web服务发送一个请求,依此类推。我的客户端类必须处理4个请求和响应。我有4个请求的4个java类。所有请求的头标题相同,但每个请求的主体是不同的。
所以我编写了一个处理程序,它扩展了SoapHandler类并为每个外出请求注入了头信息。现在如何基于java类更改每个请求的Saop主体。
我可以在处理程序中获取Java类名,并根据java类构建soap体吗?或者请建议任何其他方法?
先谢谢
答案 0 :(得分:1)
我使用以下代码解决了我的问题
在我的处理程序类
中public boolean handleMessage(SoapMessageContext context){
......
......
SOAPBody soapbody=context.getMessage().getSOAPBody();
Iterator itr=soapbody.getChildElements();
while(itr.hasNext()){
SOAPElement se=(SOAPElement)itr.next();
System.out.println("Requsted class name "+se.getElementName().getLocalName());
}
....
// proces the handler based on your class name
}