views:

237

answers:

1

I'm trying to use Jax-WS generated classes (created using wsimport) to call a webservice over an HTTPS connection from within a Java component in the application server Sybase EAServer 5.3. I get an exception in the EAServer log with the following as its underlying cause (I have removed the URL of the 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

I am pretty sure this is because I need to set up EAServer to accept the SSL certificate of this website. The connection code itself is all generated by Jax-WS so I am not actually creating the connection myself. It takes place in the generated classes.

Any ideas how to properly configure EAServer so that com.sybase.jaguar.net.HttpsURLConnection.getInputStream will successfully create an HTTPS connection to the endpoint of the webservice?

A: 

I worked with Sybase support to get this one resolved. It involved updating EAServer to use the Sun security provider instead of the Sybase one. Within the Jaguar.props we updated the JVM options to be:

com.sybase.jaguar.server.jvm.options=-Djava.protocol.handler.pkgs=sun.security.provider.Sun|com.sun.net.ssl.internal.ssl

This lets it use the Sun security provider and I stopped getting the SCL profile allocation message.

After doing this I started getting NullPointerExceptions from the JAX-WS classes in the log (which I confirmed was related to configuring JAX-WS for use within EAServer, nothing to do with the SSL Webservice).

I had to add my generated webservice stubs jar (that I created using wsimport) to the Jaguar.props property com.sybase.jaguar.server.java.classes

I also added this generated stubs jar and the JAX-WS runtime libraries to the 2 Jaguar.props properties com.sybase.jaguar.server.jvm.bootclasspath.jars and com.sybase.jaguar.server.jvm.classpath.jars

Then I copied the JAX-WS runtime libraries and my generated webservice stubs jar to the C:\Sybase\EAServer\java\lib directory and everything started working like a champ.

Dougman