JAX WS-Client kann nicht authentifiziert werden

8

Ich versuche, einen sicheren (HTTPS-Schema) Web-Service mit Hilfe der Standard JAVA 7 JAX WS-Tools zu verwenden. Dieser Web-Service erfordert Authentifizierung.

Ich habe bereits erfolgreich ein Zertifikat zu meinem lokalen Java-Keystore hinzugefügt. Alle benötigten Klassen, die ich mit Hilfe von wsimport tool aus der WSDL-Datei generiert habe.

Ich versuche jetzt, den folgenden Aufruf zu verwenden, um einen einfachen Test auszuführen:

%Vor%

Wenn ich den Test ausführe, gibt es folgende Ausnahme:

%Vor%

Wie Sie sehen, habe ich versucht, drei verschiedene Authentifizierungstechniken anzuwenden, aber ohne Glück. Die Ausnahme ist in allen drei Fällen gleich. Was mache ich falsch?

P.S. Wenn ich versuche, auf WSDL im Browser zuzugreifen, funktionieren die Zugangsdaten, die ich im Code verwende, gut.

    
Alexander Arendar 14.03.2014, 14:35
quelle

2 Antworten

21

Ihr Problem bezieht sich nicht auf das SSL-Zertifikat. Ihr Problem bezieht sich auf die Authentifizierung. Service-Instanz muss in der Lage sein, auf WSDL-Inhalt zuzugreifen (bevor Ihr Stub die tatsächliche Web-Methode aufruft), aber es ist fehlgeschlagen, deshalb haben Sie diesen Fehler erhalten.

Sie haben 2 Lösungen:

  1. Standardauthentifizierer registrieren:

    %Vor%
  2. Laden Sie das WSDL-Dokument herunter und speichern Sie es im LOCAL-Speicher und verwenden Sie dann die lokale WSDL-Datei. Für diese Lösung müssen Sie die Dienstinstanz erstellen und KEIN generierten Code wie Sie verwenden.

    %Vor%
Loc 14.03.2014, 19:45
quelle
5

Lass uns ein paar Dinge ausprobieren:

1.) Weißt du, welche Art von Authentifizierung der Server erwartet?

2.) Wenn Sie versuchen, auf Ссылка zuzugreifen, sehen Sie etwas? z.B. Ich nehme an, es gibt eine IP-Whitelist oder etwas und Sie werden dort oder ähnlich Anmeldeinformationen eingeben? Weil ich dort nichts sehen kann.

3.) Wenn es um den Code geht, authentifiziere ich mich über HTTP auf einem gesicherten Webservice:

%Vor%

Stellen Sie über dem Endpunkt-Eigenschaft auf alles, was in Ihrem WSDL-Teil wsdl: port ... gespeichert ist, was ich erwarte, in etwa so aussehen (und sollte der Standard sein ...):

%Vor%

Bearbeiten :

Das

%Vor%

wird verwendet, um den Zielendpunkt zur Laufzeit festzulegen. Wenn der Webservice einen anderen Endpunkt als den in der WSDL hat, stellen Sie sicher, dass er auf diese Weise auf den tatsächlichen Endpunkt gesetzt wird.

    
JBA 14.03.2014 15:09
quelle