通过HTTPS连接到WebService会引发SCL配置文件分配错误

时间:2009-11-16 03:31:30

标签: java-ee jax-ws sybase easerver

我正在尝试使用Jax-WS生成的类(使用wsimport创建) 通过Java中的HTTPS连接调用Web服务 应用程序服务器 Sybase EAServer 5.3 中的组件。我在EAServer日志中遇到异常 以下是其根本原因(我删除了的URL web服务)。

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-WS生成的,所以我实际上并没有创建连接 我。它发生在生成的类中。

如何正确配置EAServer的任何想法 com.sybase.jaguar.net.HttpsURLConnection.getInputStream 将 成功创建到端点的HTTPS连接 web服务?

1 个答案:

答案 0 :(得分:0)

我使用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消息。

执行此操作后,我开始从中获取NullPointerExceptions 日志中的JAX-WS类(我确认与之相关 配置JAX-WS以在EAServer中使用,与SSL无关 web服务)。

我不得不添加我生成的webservice存根jar(我使用的创建) wsimport)到Jaguar.props属性 com.sybase.jaguar.server.java.classes

我还添加了这个生成的存根jar和JAX-WS运行时库 到2 Jaguar.props属性 com.sybase.jaguar.server.jvm.bootclasspath.jarscom.sybase.jaguar.server.jvm.classpath.jars

然后我复制了JAX-WS运行时库和我生成的webservice 存根jar到C:\Sybase\EAServer\java\lib目录和所有内容 开始像冠军一样工作。