Webservice mit HTTPS

Habe ich einen externen web-service, es funktioniert über https, kann ich generieren von java-Klassen mit wsimport aber wenn ich invnoke der service, den ich erhalten die Folgen Ausnahme:

Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.UnknownHostException: ECM01
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(Unknown Source)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(Unknown Source)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(Unknown Source)...
Caused by: java.net.UnknownHostException: ECM01
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)

Meiner Klasse, den Dienst aufzurufen ist so etwas wie dieses:

public static void main(String[] args) {
    ColleagueServiceService cs = new ColleagueServiceService();
    ColleagueService service = cs.getColleagueServicePort();

    try {
        service.getColleagues("user", "password", 1);
    } catch (Exception_Exception e) {
        //TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Ich versuchte, die verwenden, SoapUI zum Aufruf des webservice, aber es zeigt noch eine Ausnahme:

Tue Dec 18 09:40:06 BRST 2012:ERROR:org.apache.http.conn.HttpHostConnectException: Connection to https://my.webservice.url.com refused
org.apache.http.conn.HttpHostConnectException: Connection to https://my.webservice.url.com refused
at com.eviware.soapui.impl.wsdl.support.http.SoapUIMultiThreadedHttpConnectionManager$SoapUIClientConnectionOperator.openConnection(SoapUIMultiThreadedHttpConnectionManager.java:321)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:561)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$Helper.execute(HttpClientSupport.java:236)
at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute(HttpClientSupport.java:345)
at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:241)
at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:123)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)...

Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)...

BEARBEITET:

Dieser webservice ist von mir, aber es ist in einen externen server, ich sah meine Klasse ColleagueService(ich war es nicht, die Tat) ist es annoted mit:

@WebService(serviceName="ColleagueServiceService")
@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class ColleagueService {

Die generierte wsdl-ich habe diesen:

<port binding="tns:ColleagueServiceBinding" name="ColleagueServicePort">
    <soap:address location="http://ECM01:80/services/ColleagueService"/>
</port>

Externen server(client) hat einen jboss-server und ein apache-http-server der http-server umleiten alle requestes per ProxyPass mit Pfad /Dienstleistungen/jboss-server (jboss-server ist der host ECM01), sowieso die wsdl ist falsch, da die Dienste https und in der wsdl-ich habe http

Kann jemand helfen? Danke.

  • PS: ich kann auf my.webservice.url.com/ColleagueService?wsdl im browser.
  • Sind Sie zufällig hinter einem proxy?
  • Ja, in meinem intranet ein proxy.
  • Und die URL, die Sie schlagen externen Netzwerk? In diesem Fall müssen Sie Ihre HTTP-client-code, der sich bewusst für den proxy-host, port und ggf. auth.
  • Ja, die URL ist extern auf mein Netzwerk, Wie mache ich das? Kann ich mit wsimport -httpproxy?
  • Ja, das wäre wohl das naheliegendste Ansatz, wenn Sie generiert haben Ihre Artefakte mit wsimport schon.
  • Noch nicht, fügte ich httpproxy und die Fehler sind immer noch die gleichen.

Schreibe einen Kommentar