Java - Servicio Web en WAS

 
Vista:

Servicio Web en WAS

Publicado por Sara (1 intervención) el 28/05/2009 17:54:31
Soy novata en el mundo de los web services y mi duda es la siguiente:

Esto implementando un cliente en un máquina con JDK 1.5 de SUN para acceder a través de un proxy a un servicio web via https que está desplegado en un WAS 6.1. Se utiliza sólo certificado en el lado del servidor y como identificación del cliente se utiliza el usertoken WSS Oasis. El código del cliente es el siguiente:

// PROXY
System.setProperty("https.proxySet","true");
System.setProperty("https.proxyHost","proxy");
System.setProperty("https.proxyPort", "80");
System.setProperty("https.proxyUser", "usuario");
System.setProperty("https.proxyPassword", "password");

//CERTIFICADO

System.setProperty("javax.net.ssl.trustStore","C:/Java/jdk1.5.0_16/jre/lib/security/cacerts");
System.setProperty("javax.net.ssl.trustStorePassword","changeit");

Security.setProperty("ssl.SocketFactory.provider", "com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl");
Security.setProperty("ssl.ServerSocketFactory.provider", "com.sun.net.ssl.internal.ssl.SSLServerSocketFactoryImpl");

EngineConfiguration config = new FileProvider("client-config.wsdd");

Prueba_Service service = new Prueba_ServiceLocator(config);

Prueba_PortType stb = service.getPruebaSOAP();

resultado = stb.metodo(entrada);

donde client-config.wsdd es:

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration>
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="user" value="usuario"/>
<parameter name="passwordCallbackClass" value="PWCallback"/>
<parameter name="action" value="UsernameToken"/>
<parameter name="password" value="password"/>
<parameter name="passwordType" value="PasswordText"/>
</handler>
</requestFlow>
</globalConfiguration>
</deployment>

Pero no funciona, me da el error:

javax.net.ssl.SSLException: Unrecognized SSL handshake.

No se si el problema puede ser en la parte
Security.setProperty("ssl.SocketFactory.provider", "com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl");
Security.setProperty("ssl.ServerSocketFactory.provider", "com.sun.net.ssl.internal.ssl.SSLServerSocketFactoryImpl");

Que en vez de ser de SUN debería usar las de IBM, ya que estoy accediendo a un servicio web en WAS de IBM.

Si alguién me pudiera dar un pista lo agredeceria mucho.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Servicio Web en WAS

Publicado por Luis (1 intervención) el 06/11/2009 19:49:38
Para Websphere v6.1 como esta basado en JSSE debes usar:

Security.setProperty("ssl.SocketFactory.provider", "com.ibm.jsse2.SSLSocketFactoryImpl");
Security.setProperty("ssl.ServerSocketFactory.provider", "com.ibm.jsse2.SSLServerSocketFactoryImpl");

Además es mejor que utilices el JRE de IBM. En una carpeta del WAS 6.1 lo encontraras.

Espero te sea de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar