我试图使用Jax生成的类(使用wsimport创建)从应用服务器Sybase EAServer 5.3中的组件中调用HTTPS连接上的WS服务。我在EAServer日志中得到了一个异常,其根本原因如下(我已经删除了webservice的URL )。
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我很确定这是因为我需要设置EAServer来接受这个网站的SSL证书。连接代码本身都是由Jax生成的,所以我实际上并不是自己创建连接。它发生在生成的类中。
有什么想法吗?如何正确配置com.sybase.jaguar.net.HttpsURLConnection.getInputStream,以便EAServer能够成功地创建到Any服务端点的HTTPS连接?
发布于 2009-11-23 16:25:46
我和Sybase支持一起工作以解决这个问题。它涉及更新EAServer以使用Sun安全提供者而不是Sybase提供者。在Jaguar.props中,我们更新了JVM选项如下:
com.sybase.jaguar.server.jvm.options=-Djava.protocol.handler.pkgs=sun.security.provider.Sun|com.sun.net.ssl.internal.ssl这允许它使用Sun安全提供程序,而我停止了获取SCL profile allocation消息。
完成此操作后,我开始从日志中的JAX类获得NullPointerExceptions (我确认这与配置JAX以便在EAServer中使用有关,与SSL无关)。
我必须将生成的webservice存根jar (我使用wsimport创建的)添加到Jaguar.props属性com.sybase.jaguar.server.java.classes中。
我还将生成的存根jar和JAX-WS运行时库添加到2 Jaguar.props属性com.sybase.jaguar.server.jvm.bootclasspath.jars和com.sybase.jaguar.server.jvm.classpath.jars中。
然后,我将JAX运行时库和生成的webservice存根jar复制到C:\Sybase\EAServer\java\lib目录中,一切都开始像champ一样工作。
https://stackoverflow.com/questions/1739897
复制相似问题