2011-01-10 8 views
11

So beheben Sie die oben genannte Ausnahme beim Aufrufen eines .net-Webdiensts (asmx), der auf dem SSL-Protokoll ("https:") von Java gehostet wird, mithilfe von Achsenregistern.javax.net.ssl.SSLException: Unerkannte SSL-Nachricht, Klartextverbindung?

receving die folgende Fehlermeldung während der Ausführung des Codes:

faultDetail: 
{http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 
at com.ibm.jsse2.a.c(a.java:228) 
at com.ibm.jsse2.a.a(a.java:63) 
at com.ibm.jsse2.jc.a(jc.java:465) 
at com.ibm.jsse2.jc.g(jc.java:458) 
at com.ibm.jsse2.jc.a(jc.java:67) 
at com.ibm.jsse2.jc.startHandshake(jc.java:342) 
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186) 
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191) 
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404) 
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138) 
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) 
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) 
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) 
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) 
at org.apache.axis.client.Call.invokeEngine(Call.java:2784) 
at org.apache.axis.client.Call.invoke(Call.java:2767) 
at org.apache.axis.client.Call.invoke(Call.java:2443) 
at org.apache.axis.client.Call.invoke(Call.java:2366) 
at org.apache.axis.client.Call.invoke(Call.java:1812) 
at examples.Example_client.main(Example_client.java:79) 

{http://xml.apache.org/axis/}hostname:D-113020008 
+1

Verwenden Sie bitte den Link "Bearbeiten" und fügen Sie 4 führende Leerzeichen vor jeder Zeile ein, die Sie als Code anzeigen möchten. (Es gibt eine Schaltfläche, die es für Sie tun wird, wenn Sie den Text zuerst auswählen) –

+1

Und wie genau rufen Sie diesen Dienst auf? –

Antwort

5

Da die Fehlermeldung sagt, ist die Wahrscheinlichkeit, dass der Peer-Text spricht, nicht SSL.

+0

Wir rufen den Webservice über einen Proxyserver auf und haben keine Kontrolle über den Proxy, um diese Webservice-URL zu umgehen. –

+0

Außerdem haben wir die Systemeigenschaften für https.proxyhost, https.proxyPort, https.proxyUser und https.proxyPassword festgelegt. –

+0

@lakshmi: Ich sehe nicht, welchen Unterschied das macht. Sie verwenden immer noch SSL, um sich mit einem offensichtlich Klartextdienst zu verbinden. – EJP

2

Ich habe diesen Fehler zuvor erhalten, als meine Verbindung durch komplexe Firewall-Regeln blockiert wurde. Wenn Sie vorhanden sind, kann es sich lohnen, die Konfiguration zu betrachten.

+1

Unmöglich Wenn Ihre Verbindung blockiert wurde, würden Sie überhaupt keine Nachrichten erhalten, geschweige denn eine unerkannte Nachricht. – EJP

6

Es ist möglich, dass Sie einen Proxy verwenden, um den SSL-Inhalt abzurufen, aber Ihre Proxy-Konfiguration ist falsch. Sie sollten in Erwägung ziehen, http als Proxy-Schema und dann https als Ihr Schema für den tatsächlichen Inhalt zu verwenden. Das hat mein Problem gelöst.