Подключение к 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
каталог и все стало работать как чемпион.