2012-09-06 48 views
6

我将IBM Rational Application Developer生成的客户端存根与Java的wsimport进行比较,并注意到IBM RAD生成了一个额外的类,即SOAPProxy类。该类允许设置Web服务的URL。如何从wsimport生成SoapProxy?

如何在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生成这个?
+0

您正在使用哪种版本的RAD?你如何生成代码 - 你是否在封闭的EAR项目中使用“准备部署”?你还在做什么? – Isaac

回答

0

每个工具(JBoss的WS,wsimport的,Apache的CXF,RAD等)从一个WSDL生成类做它略有不同,他们并不都产生相同的类,但它们通常是相似的。但是会有一种方法可以提供自己的指向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, ...); 

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

0

在RAD 9.1中,当您在Web服务客户端弹出向导中为“客户端类型:”选择“Java代理”时,它也会创建代理代码。 RAD附带的wsimport.exe似乎无法通过命令行创建代理代码。

相关问题