Collegamento a WebService tramite HTTPS getta SCL Profilo errore di allocazione
Domanda
Sto cercando di usare JAX-WS classi generate (creati utilizzando wsimport) a chiamare un webservice tramite una connessione HTTPS dall'interno di un Java componente del server di applicazione Sybase EAServer 5.3 . Ottengo un'eccezione nel registro EAServer con la seguente come causa sottostante (Ho rimosso l'URL 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
Sono abbastanza sicuro che questo è perché ho bisogno di impostare EAServer per accettare il certificato SSL di questo sito web. Il codice di connessione è di per sé tutti generati da JAX-WS quindi non sto in realtà la creazione del collegamento me stessa. Si svolge nelle classi generate.
Tutte le idee come configurare correttamente EAServer in modo che com.sybase.jaguar.net.HttpsURLConnection.getInputStream creare con successo una connessione HTTPS per il punto finale del webservice?
Soluzione
Ho lavorato con il supporto di Sybase per ottenere questo risolto. Ha coinvolto l'aggiornamento EAServer di utilizzare il provider di protezione solare al posto del Sybase uno. all'interno del Jaguar.props abbiamo aggiornato le opzioni JVM per essere:
com.sybase.jaguar.server.jvm.options=-Djava.protocol.handler.pkgs=sun.security.provider.Sun|com.sun.net.ssl.internal.ssl
In questo modo, esso uso il provider di protezione Sole e mi sono fermato ricevendo il
messaggio SCL profile allocation
.
Dopo aver fatto questo ho cominciato a ricevere NullPointerExceptions dalla classi JAX-WS nel registro (che ho confermato era legato a la configurazione di JAX-WS per l'uso all'interno EAServer, niente a che fare con l'SSL Webservice).
ho dovuto aggiungere la mia generato vaso webservice stub (che ho creato utilizzando
wsimport) per la proprietà Jaguar.props
com.sybase.jaguar.server.java.classes
Ho anche aggiunto questa generato stub vaso e le librerie di runtime JAX-WS
alle proprietà 2 Jaguar.props
com.sybase.jaguar.server.jvm.bootclasspath.jars
e
com.sybase.jaguar.server.jvm.classpath.jars
Poi ho copiato le librerie di runtime JAX-WS e il mio webservice generato
jar stub alla directory e tutto C:\Sybase\EAServer\java\lib
ha iniziato a lavorare come un campione.