Подключение к WebService через HTTPS приводит к ошибке распределения профиля SCL

Я пытаюсь использовать сгенерированные Jax-WS классы (созданные с помощью wsimport) для вызова веб-службы через соединение HTTPS из компонента Java на сервере приложений Sybase EAServer 5.3. Я получаю исключение в журнале EAServer со следующей причиной в качестве основной причины (я удалил 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-WS, поэтому я сам не создаю соединение. Это происходит в сгенерированных классах.

Любые идеи, как правильно настроить EAServer так, чтобы com.sybase.jaguar.net.HttpsURLConnection.getInputStream успешно создавал HTTPS-соединение с конечной точкой веб- службы?

1 ответ

Решение

Я работал с поддержкой 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 сообщение.

После этого я начал получать исключения NullPointerException из классов JAX-WS в журнале (что, как я подтвердил, было связано с настройкой JAX-WS для использования в EAServer, никак не связанной с веб-службой SSL).

Мне пришлось добавить сгенерированный 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 и сгенерированный файл-заглушку веб-сервиса в C:\Sybase\EAServer\java\lib каталог и все стало работать как чемпион.

Другие вопросы по тегам