Anschluss an WebService über HTTPS führt SCL Profilzuordnung Fehler
Frage
Ich versuche, JAX-WS-generierten Klassen (erstellt mit wsimport) zu verwenden, um rufen Sie eine Webservice über eine HTTPS-Verbindung innerhalb eines Java Komponente in dem Anwendungsserver Sybase EAServer 5.3 . Ich erhalte eine Ausnahme im EAServer Protokoll mit Folgendes als zugrunde liegende Ursache (ich habe die URL der entfernt webservice).
2009-11-15 18:39:58,338: ALL [Thread-19] - Caused by:
java.io.IOException: https://www.<my website url>.com:443: SCL profile
allocation
2009-11-15 18:39:58,338: ALL [Thread-19] - at
com.sybase.jaguar.net.HttpsURLConnection.getInputStream(HttpsURLConnection.java:521)
2009-11-15 18:39:58,338: ALL [Thread-19] - at
java.net.URL.openStream(Unknown Source)
2009-11-15 18:39:58,338: ALL [Thread-19] - at
com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:804)
2009-11-15 18:39:58,338: ALL [Thread-19] - at
com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:262)
2009-11-15 18:39:58,338: ALL [Thread-19] - at
com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:129)
2009-11-15 18:39:58,338: ALL [Thread-19] - ... 18 more
Ich bin ziemlich sicher, das ist, weil ich brauche EAServer einrichten zu akzeptieren das SSL-Zertifikat auf dieser Website. Der Verbindungscode selbst ist alle von JAX-WS erzeugt, so ich bin eigentlich nicht der Erstellung der Verbindung mich selber. Es findet in den generierten Klassen.
Alle Ideen, wie man richtig konfigurieren EAServer, so dass com.sybase.jaguar.net.HttpsURLConnection.getInputStream eine HTTPS-Verbindung zum Endpunkt der erfolgreich erstellen Webservice?
Lösung
arbeitete ich mit Sybase Unterstützung diese ein erhalten gelöst. Dabei handelte es sich EAServer Aktualisierung der Sun-Sicherheitsanbieter anstelle der Sybase zu verwenden. Innerhalb des Jaguar.props wir die JVM-Optionen aktualisiert werden:
com.sybase.jaguar.server.jvm.options=-Djava.protocol.handler.pkgs=sun.security.provider.Sun|com.sun.net.ssl.internal.ssl
Auf diese Weise können sie die Sicherheitsanbieter Sun verwenden, und ich hielt das immer
SCL profile allocation
Nachricht.
Nachdem Sie das getan habe ich angefangen Nullpointerexceptions von der Begleit JAX-WS-Klassen im Protokoll (was ich bestätigt wurde im Zusammenhang mit JAX-WS für den Einsatz in EAServer konfigurieren, nichts mit dem SSL zu tun Webservice).
Ich hatte meine generierten WebService Stubs jar hinzufügen (die ich erstellt mit
wsimport) an die Jaguar.props Eigenschaft
com.sybase.jaguar.server.java.classes
ich auch diese generierten Stubs jar und die JAX-WS-Laufzeitbibliotheken hinzugefügt
zu den 2 Jaguar.props Eigenschaften
com.sybase.jaguar.server.jvm.bootclasspath.jars
und
com.sybase.jaguar.server.jvm.classpath.jars
Dann kopierte ich die JAX-WS-Laufzeitbibliotheken und meine generierten WebService
Stubs jar zum C:\Sybase\EAServer\java\lib
Verzeichnis und alles
zu arbeiten begann wie ein Weltmeister.