当前位置: 代码迷 >> java >> Eclipse Java JAX-RPC Web服务导入生成一个接口而不是一个类
  详细解决方案

Eclipse Java JAX-RPC Web服务导入生成一个接口而不是一个类

热度:106   发布时间:2023-08-02 10:56:00.0

因此,当尝试实例化该类的对象时,错误为

Cannot instantiate the type

有谁知道为什么Eclipse会生成一个接口而不是一个类? 该Web服务最初是用VB.Net编写的,但可以按照给出的简单示例进行复制

  1. 启动一个蚀项目。
  2. 添加新的Web服务客户端
  3. 编写代码...

     package test; import NET.webserviceX.www.CurrencyConvertor; import NET.webserviceX.www.CurrencyConvertorSoap; import NET.webserviceX.www.Currency; public class Convert { public static void main(String[] args) { CurrencyConvertor cc = new CurrencyConvertor(); // Gets an implementation of the interface we can use // to contact the web service. CurrencyConvertorSoap ccs = cc.getCurrencyConvertorSoap(); // Send the SOAP request to the server and get the result from the web service double conversionRate = ccs.conversionRate(Currency.GBP, Currency.USD); System.out.println("?1 is worth $" + conversionRate ); } } 

发生的是CurrencyConverter.java作为接口导入,因此无法实例化。

应该将其作为一个类导入。 为什么不呢

我无法复制您的pb,但是如果您使用Java 1.6+,则可以使用JDK中提供的wsimport工具生成您的类型。

在终端中使用以下命令:

视窗:

"C:\Program Files\Java\jdk1.6.0_45\bin\wsimport.exe" -keep http://www.webservicex.net/CurrencyConvertor.asmx?WSDL

Linux:

pathToJDK/bin/wsimport -keep http://www.webservicex.net/CurrencyConvertor.asmx?WSDL

您会看到一些警告,只是忽略它们。 然后,您将获得CurrencyConvertor类。

我已经在我的机器上尝试过了,并且可以正常工作!

-更新27/07/2015 ---

我看到您正在尝试wscompile 实际上,此工具早已由wsimport取代。 请参阅oracle文档:

部分1.1.2完全动态运行时

还应该注意,wscompile已被两个新工具取代:wsimport和wsgen。 wsimport用于导入WSDL并生成可移植工件。

必须使用“ Java Web服务开发人员包”中的wscompile,它需要JDK 5 ...,并且是为Win 7之前的操作系统设计的。

  相关解决方案