问题描述
因此,当尝试实例化该类的对象时,错误为
Cannot instantiate the type
有谁知道为什么Eclipse会生成一个接口而不是一个类? 该Web服务最初是用VB.Net编写的,但可以按照给出的简单示例进行复制
- 启动一个蚀项目。
- 添加新的Web服务客户端
编写代码...
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作为接口导入,因此无法实例化。
应该将其作为一个类导入。 为什么不呢
1楼
我无法复制您的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并生成可移植工件。
2楼
必须使用“ Java Web服务开发人员包”中的wscompile,它需要JDK 5 ...,并且是为Win 7之前的操作系统设计的。