因此,在尝试实例化类的对象时,错误是
Cannot instantiate the type
有谁知道为什么Eclipse会生成一个接口而不是一个类? Web服务最初是用VB.Net编写的,但可以按照给定here
的简单示例进行复制编写代码......
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作为界面导入,因此无法实例化。
它应该作为一个类导入。为什么不呢?
答案 0 :(得分:1)
我无法重现您的pb,但如果您使用java 1.6+,则可以使用JDK中提供的wsimport工具生成您的类型。
在终端中使用以下命令:
Windows:
"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。
我在我的机器上尝试了这个并且它有效!
- 2015年7月27日更新---
我看到你正试图向我们wscompile
。事实上,很久以前这个工具已被wsimport
取代。请参阅oracle文档:
http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/jaxws/UsersGuide.html
第1.1.2部分完全动态运行时
还应该注意,wscompile已经被两个新工具所取代:wsimport和wsgen。 wsimport用于导入WSDL并生成可移植工件。
答案 1 :(得分:0)
必须使用来自" java web services developer Pack"的wscompile。这需要一个JDK 5 ......并且是为赢得7前OS而设计的。