Conectando -se ao serviço da web via HTTPS lança Erro de alocação de perfil SCL
Pergunta
Estou tentando usar as classes geradas pelo JAX-WS (criadas usando o WSIMPORT) para chamar um serviço da web em uma conexão HTTPS de um componente Java no servidor de aplicativos Sybase Easerver 5.3. Tenho uma exceção no log do Easerver com o seguinte como causa subjacente (removi o URL do serviço da 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
Tenho certeza de que isso é porque preciso configurar o Easerver para aceitar o certificado SSL deste site. O código de conexão em si é tudo gerado pelo JAX-WS, então eu não estou realmente criando a conexão. Ocorre nas classes geradas.
Qualquer idéia de como configurar adequadamente o Easerver para quecom.sybase.jaguar.net.httpsurlConnection.getInputStream Criará com êxito uma conexão HTTPS com o terminal do serviço da web?
Solução
Eu trabalhei com o suporte da Sybase para resolver este. Envolveu a atualização do Easerver para usar o provedor de segurança da Sun em vez do Sybase One. Dentro do Jaguar.Props, atualizamos as opções da JVM para serem:
com.sybase.jaguar.server.jvm.options=-Djava.protocol.handler.pkgs=sun.security.provider.Sun|com.sun.net.ssl.internal.ssl
Isso permite que ele use o provedor de segurança do sol e eu parei de obter oSCL profile allocation
mensagem.
Depois de fazer isso, comecei a obter o NullPointerExceptions das classes JAX-WS no log (que confirmei estava relacionado a configurar o JAX-WS para uso no Easerver, nada a ver com o SSL WebService).
Eu tive que adicionar meu jar de stubs de serviço da web gerado (que eu criei usando WSIMPORT) à propriedade Jaguar.Propscom.sybase.jaguar.server.java.classes
Eu também adicionei este frasco de stubs gerado e as bibliotecas de tempo de execução do JAX-WS para as 2 Propriedades do Jaguar.Propscom.sybase.jaguar.server.jvm.bootclasspath.jars
ecom.sybase.jaguar.server.jvm.classpath.jars
Então eu copiei as bibliotecas de tempo de execução do JAX-WS e meus estubes de serviço da web gerados para o jar para o C:\Sybase\EAServer\java\lib
Diretório e tudo começaram a funcionar como um campeão.