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.trustStorePasswo rd","changeit");
Security.setProperty("ssl.SocketFactory.provider", "com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl ");
Security.setProperty("ssl.ServerSocketFactory.prov ider", "com.sun.net.ssl.internal.ssl.SSLServerSocketFacto ryImpl");
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:
<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSen der"/>
<globalConfiguration>
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSend er" >
<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.prov ider", "com.sun.net.ssl.internal.ssl.SSLServerSocketFacto ryImpl");
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.