我可以在 soap 处理程序中获取 Java Class 名称吗?
Can I get Java Class name in soap handler?
我正在使用 JAX-WS 网络服务。我已经使用 wsimport 生成了 java 个文件。我正在使用的 Web 服务是安全的,只有当 soap 消息符合 xsd 定义时它才会接受。
现在我的问题是我必须使用使用 wsimport 生成的 class 之一向 Web 服务发送请求。根据响应,我必须再向 Web 服务发送一个请求,因此 on.My 客户端 class 必须处理 4 个请求和响应。我有 4 java classes for 4 requests.Soap header 对于所有请求都是相同的,但是 body 对于每个请求都是不同的。
所以我写了一个扩展 SoapHandler 的处理程序 class 并向每个输出注入 header 信息 request.Now 如何根据每个请求更改 Saop body java class。
我可以在处理程序中获取 Java class 名称并基于 java class 构建 soap body 吗?或者请提出任何其他方法?
提前致谢
我使用以下代码解决了我的问题
在我的处理程序中 class
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
}
我正在使用 JAX-WS 网络服务。我已经使用 wsimport 生成了 java 个文件。我正在使用的 Web 服务是安全的,只有当 soap 消息符合 xsd 定义时它才会接受。
现在我的问题是我必须使用使用 wsimport 生成的 class 之一向 Web 服务发送请求。根据响应,我必须再向 Web 服务发送一个请求,因此 on.My 客户端 class 必须处理 4 个请求和响应。我有 4 java classes for 4 requests.Soap header 对于所有请求都是相同的,但是 body 对于每个请求都是不同的。
所以我写了一个扩展 SoapHandler 的处理程序 class 并向每个输出注入 header 信息 request.Now 如何根据每个请求更改 Saop body java class。
我可以在处理程序中获取 Java class 名称并基于 java class 构建 soap body 吗?或者请提出任何其他方法?
提前致谢
我使用以下代码解决了我的问题
在我的处理程序中 class
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
}