2016-07-04 14 views
0

Ich versuche, unter öffentlichen Web-Service mit Eclipse zu konsumieren. http://www.webservicex.com/globalweather.asmx?wsdljava.net.ConnectException: Zeitüberschreitung der Verbindung: Verbindung in Eclipse

Wenn ich im Java-Client ausführen, gibt es den Fehler;

java.net.ConnectException: Connection timed out: connect 

Unten ist das einfache Client-Programm;

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()); 
     } 
    } 
} 

Allerdings seltsam funktioniert das gut, wenn durch SOAP UI konsumiert. Daher nehme ich an, dass dies etwas mit der Eclipse-Konfiguration zu tun hat.

Vielen Dank im Voraus für jede Hilfe.

+0

Wie haben Sie generieren die Klassen von WSDL-Datei? cxf, jax-ws? – Rao

Antwort

0

Eclipse hat nichts damit zu tun. Ihr Code wird von der JVM ausgeführt, auch wenn Ihre Entwicklungsumgebung Eclipse ist. Ein Verbindungstimeout bedeutet, dass Ihr Client keine Verbindung mit dem Endpunkt herstellen kann.

Sie haben den Client-Proxy automatisch generiert, indem Sie GlobalWeatherSoapProxy erhalten. Diese Klasse erhält den Verweis auf den Endpunkt durch Laden von WSDL. Alternativ kann URL durch Code zur Verfügung gestellt werden. Überprüfen Sie den Inhalt dieser Klasse zu sehen, wie Endpunkt-URL

geladen ist, sollten Sie sehen etwas wie (überprüfen Sie diese voll 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);