我可以在soap处理程序中获取Java类名吗?

时间:2015-02-27 11:47:20

标签: java web-services soap soap-client

我正在使用JAX-WS Web服务。我使用wsimport生成了java文件。我正在使用的Web服务是安全的,只有当soap消息符合xsd定义时才会接受。

现在我的问题是我必须使用wsimport生成的类之一向Web服务发送请求。根据响应,我必须再向Web服务发送一个请求,依此类推。我的客户端类必须处理4个请求和响应。我有4个请求的4个java类。所有请求的头标题相同,但每个请求的主体是不同的。

所以我编写了一个处理程序,它扩展了SoapHandler类并为每个外出请求注入了头信息。现在如何基于java类更改每个请求的Saop主体。

我可以在处理程序中获取Java类名,并根据java类构建soap体吗?或者请建议任何其他方法?

先谢谢

1 个答案:

答案 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

}