如何从wsimport生成SoapProxy?

Arc*_*rci 6 java jax-ws wsimport ibm-rad

我正在将IBM Rational Application Developer生成的客户端存根与Java的wsimport进行比较,并注意到IBM RAD生成了一个额外的类,即SOAPProxy类.此类允许设置Web服务的URL.

如何在Java的wsimport中生成SOAPProxy类?IBM RAD的wsimport和Java的wsimport是一样的吗?

以下是IBM RAD生成的类:

  • ObjectFactory.java
  • package-info.java
  • WSCalculator_Service.java
  • WSCalculator.java
  • WSCalculatorRequest.java
  • WSCalculatorResponse.java
  • WSCalculatorSOAPProxy.java - 这不是在Java的wsimport上生成的.如何使用Java的wsimport生成它?

Jas*_*ler 0

从 WSDL 生成类的每个工具(JBoss WS、wsimport、Apache CXF、RAD 等)的做法都略有不同,并且它们并不都生成相同的类,尽管它们通常很相似。但是有一种方法可以提供您自己的指向 WSDL 的 URL。我不熟悉 RAD 及其如何生成 Web 服务,但我的猜测是 WSCalculator_Service 类有一个采用 URL 参数的构造函数:

WSCalculator_Service service = new WSCalculator_Service(new URL("http://www.domain.com/ws/file.wsdl"));
WSCalculator port = service.getWSCalculatorPort();
port.callWebService(param1, param2, ...);
Run Code Online (Sandbox Code Playgroud)

有时,采用 URL 的构造函数也需要 QName。我会查看源代码并复制它正在使用的 QName。