我正在尝试使用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服务?
答案 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.jars
和
com.sybase.jaguar.server.jvm.classpath.jars
然后我复制了JAX-WS运行时库和我生成的webservice
存根jar到C:\Sybase\EAServer\java\lib
目录和所有内容
开始像冠军一样工作。