2016-05-30 5 views
0

Ich habe eine WSDL-Datei erhalten und mich gebeten, einen JAVA-Client über sie zu erstellen, also starte ich Eclipse 4.5.2, erstellte ein leeres dynamisches Webprojekt, importiere diese WSDL in das Projekt und klicke mit der rechten Maustaste:Wie importiert CA für WSDL-Client Zweck?

generieren
  1. Web Services-> Client
  2. Set Konfiguration: Tomcat 7.0, Apache Axis
  3. Klicken sie auf "Fertig stellen" und Pop-up-Ausnahme: PKIX Gebäude Pfad
  4. fehlgeschlagen

Also ich in dieser WSDL aussehen, es enthält einige Links, die mit unserem Testdienst verbunden werden müssen:

<soap:address location="https://example.com/testwebservice.svc" /> 

Ich schaute mich um den Stackoverflow und scheint, dass ich die CA von dieser HTTPS-Service-Site importieren muss. Aber ich weiß nicht, wie man diese CA "importiert", während Codes nicht erzeugt werden.

Bitte sagen Sie mir, wie ich dieses Problem lösen kann, damit ich zu meiner Entwicklung übergehen kann, danke!

=====================

aktualisieren

Nachdem ich die CA meiner cacerts importiert, ist dieses Problem noch bleiben? Das ist komisch, da ich alle CA exportiert habe, mit denen diese WSDL über den Browser verbunden ist (und keytool sagt mir, dass diese CA bereits nach meinem ersten Import existiert).

IWAB0399E Error in generating Java from WSDL: javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve schema referenced at 'https://example.com/CPP/download/xsd0.xsd', relative to 'file:/D:/project/java_client/java_client.wsdl'.: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve schema referenced at 'https://example.com/CPP/download/xsd0.xsd', relative to 'file:/D:/project/java_client/java_client.wsdl'.: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
at com.ibm 

Antwort

0

Es gibt einige Schritte, um diesen Dienst zu nutzen.

  1. Get/Extract-Zertifikat des exponierten Dienstes. Dies kann geschehen, indem Entwickler von diesem Dienst aufgefordert werden, ein Zertifikat bereitzustellen, oder Sie können den Dienst mithilfe eines Browsers aufrufen und das Zertifikat extrahieren, wenn dies möglich ist.

  2. Suchen Sie den standardmäßigen Trust-Speicher von Java. Java/JRE wird mit einem globalen Trust Store geliefert, der sich in der Java-Installation befindet. Suchen Sie die Datei cacerts. Diese Datei sollte in/jre/lib/security verfügbar sein.

  3. Importieren Sie das Zertifikat in Trust Store. Importieren Sie das Zertifikat des Webservice in die Datei cacerts mit dem Befehl keytool.

    keytool -import -v -trustcacerts -alias Server-alias -datei server.cer -keystore cacerts -keypass changeit -storepass changeit

Bitte beachten Sie, dass dies nicht Ansatz empfohlen, da dies das Vertrauen wird Zertifikat nur auf dem aktuellen Server/Arbeitsplatz und diese Datei wird möglicherweise beim nächsten Java Upgrade überschrieben. Und Sie müssen diesen Schritt überall ausführen, wo Sie diese Anwendung bereitstellen.

Obwohl Sie obigen Schritte tun müssen Service-Proxy (Eclipse/Apache Achse Projektgenerierung)

+0

Ich importierte CA cacerts, aber diese Ausnahme immer noch Pop-up zu erstellen. Ausnahmeinhalt wurde in meinem Post aktualisiert. – user6309529

+0

Sie können versuchen, WSDL-Datei lokal mit Browser zu speichern und dann versuchen, es in Eclipse zu importieren. –

+0

Ich habe diese XSDs nach local heruntergeladen und kopiere die tomcat config in workspace/server, es funktioniert endlich!Auch das ist keine gute Lösung, wie ich erwartet habe, aber es gibt auch keine bessere Option, also nehme ich das. – user6309529

Verwandte Themen