【问题标题】:Can I get Java Class name in soap handler?我可以在肥皂处理程序中获取 Java 类名称吗?
【发布时间】:2015-02-27 11:47:20
【问题描述】:

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

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

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

我可以在处理程序中获取 Java 类名并基于 java 类构建肥皂体吗?或者请建议任何其他方法?

提前致谢

【问题讨论】:

  • 尝试将您的问题格式化为可读格式。
  • 您不必构建 SOAP 主体。 JAX-WS 会根据用于生成 java 类的模式为您执行此操作。

标签: java web-services soap soap-client


【解决方案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

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2021-10-19
    相关资源
    最近更新 更多