我正在尝试使用Eclipse使用以下公共Web服务。 http://www.webservicex.com/globalweather.asmx?wsdl
当我在java客户端执行时,它会给出错误;
java.net.ConnectException: Connection timed out: connect
以下是简单的客户端程序;
public class ClientTest1
{
public static void main(String[] args)
{
GlobalWeatherSoapProxy obj1 = new GlobalWeatherSoapProxy();
try
{
System.out.println(obj1.getCitiesByCountry("Japan"));
}
catch(Exception e1)
{
System.out.println(+e1.getMessage());
}
}
}
然而奇怪的是,当通过SOAP UI使用时,这可以正常工作。因此我认为这与Eclipse配置有关。
提前感谢您的帮助。
答案 0 :(得分:0)
Eclipse与它无关。您的代码由JVM执行,即使您的开发环境是Eclipse。连接超时意味着您的客户端无法与端点连接。
您已通过某种方式自动生成客户端代理GlobalWeatherSoapProxy
。该类将通过加载WSDL获取对端点的引用。或者,url可以通过代码提供。查看该类的内容以查看端点URL的加载方式
您应该看到类似的内容(查看此完整example)
URL url = new URL("http://localhost:9999/ws/hello?wsdl");
QName qname = new QName("http://ws.mkyong.com/", "HelloWorldImplService");
Service service = Service.create(url, qname);
HelloWorld hello = service.getPort(HelloWorld.class);