lunes, 14 de junio de 2010

javax.net.ssl.SSLHandshakeException - Instalar certificados en la Maquina Virtual Java

Tuve este inconveniente con la aplicacion en la que trabajo, este es parte del trace y debajo esta la solucion:

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target


Eventualmente cuando queremos acceder a un servicio web atraves de nuestra aplicacion Java, necesitemos instalar un certificado a nuestra maquina virtual, para ello primero necesitaremos bajar dicho certificado en nuestra pc y luego instalarlo en la JVM


Para guardar el el certificado en la pc

Acceder a traves de un IE al wsdl del web services, una vez abierto ir a
file-> properties -> General tab -> certificates ->details tab ->copy to file ->aparece un wizard y luego presionar next-> ahi seleccionar el formato DER encoded binary -> ponerle algun nombre significativo al certificado y luego finish

una vez que tengo el certificado en la pc, ahora que hago?
Yo luego de guardarlo en la pc, copie los certificados a un directorio cercano al root
una cosa asi c:\directorio

Luego de eso procederemos a instalar el certificado con el Keytool en el cacerts

Aqui esta el comando ejemplo para instalar el certificado

C:\Program Files\Java\jre6\lib\security>keytool -import -alias webc -file "C:\certificates\webc.cer"
-keystore "C:\Program Files\Java\jre6\lib\security\cacerts"

donde webc es el nombre significativo de este ejemplo pero puede ser el que cada uno quiera y webc.cer es el certificado que bajamos con el wsdl

una vez que le damos enter a ese comando se nos va a requerir la password del keystore, la cual por defecto es changeit

Enter keystore password: changeit
Owner: CN=ebosi.vzbi.com, OU=VBP Cert, O=Verizon Business, L=Boston, ST=MA, C=US
Issuer: CN=VBP Certificate Authority, OU=VBP CA, O=Verizon Business, L=Boston, ST=MA, C=US
Serial number: 49
Valid from: Mon Feb 22 17:03:19 GMT-03:00 2010 until: Tue May 22 17:03:19 GMT-03:00 2018
Certificate fingerprints:
MD5: CC:0B:73:44:67:74:85:06:F2:82:57:D9:BA:53:A1:C4
SHA1: A2:3E:2C:E9:EB:A8:71:14:2C:4E:D9:1D:7B:06:6B:DF:54:29:8F:F6
Trust this certificate? [no]: yes
Certificate was added to keystore

Espero que les haya servido, hasta la proxima!

viernes, 17 de julio de 2009

Oracle Sql WHERE:

Sintaxis

SELECT ... <columnas>
FROM......<tabla>
WHERE....<condiciones>


La cláusula WHERE se utiliza para filtrar los resultado obtenidos por una consulta sql

Si quiero que mi consulta me retorne solo aquellos valores que contengan cierta condición, entonces voy a utilizar la cláusula "WHERE"

Suponiendo que tengo una tabla de empleados cuyos atributos o columnas con:

nombre : VARCHAR(20)
apellido : VARCHAR(15)
edad : NUMBER

Y de la cual quiero generar una consulta que me retorne la información de aquellos empleados que son mayores de 28 años

La consulta a realizar seria:

SELECT * FROM empleados WHERE edad > 28;

Ahora bien, si mi consulta fuera por aquellos empleados de tienen igual o mayor edad que 28 entonces la consulta seria algo asi:

SELECT * FROM empleados WHERE edad >= 28;
entonces la consulta me va a retornar la información de aquellos empleados cuya edad sea mayor o igual a 28

La Cláusula WHERE utiliza condiciones de comparación para comparar una expresión con otra, o con un valor. Estas condiciones pueden ser:

Operadores Aritmeticos:

  • "+" SELECT * FROM empleados WHERE edad + 1 = 26;

  • "=" (igual) SELECT * FROM empleados WHERE nombre = 'Ignacio'
    --Ojo que Oracle es case sensitive no es lo mismo 'Ignacio' que 'IGNACIO'
    --Por otra parte para lo que son caracteres en ORACLE se utiliza la comilla simple

  • "<" (menor que)
  • ">" (mayor que)

  • "<>"(distintos)


    Condiciones AND, OR y BETWEEN

  • "AND" Sirve para retornar aquellos campos que contengan ambas condiciones, interseccion de ambas condiciones. Restringe la consulta a aquellos empleados que poseen ambas condiciones.

    Ej SELECT * FROM empleados WHERE edad > 25 AND edad <>
  • "OR" Sirve para retornar aquellos campos que contengan una condicion o la otra. Expande el resultado a aquellos resultados que poseen una condicion o la otra

    Ej SELECT * FROM empleados WHERE edad <> 30
    En este ejemplo el resultado me va a traer todos los empleados menores a 25 años y todos los mayores a 30 años.
  • viernes, 8 de junio de 2007

    miércoles, 4 de abril de 2007

    bueno Gente aca va mi blog disfrutenlo(mmm)...
    che y si alguien se copa y deja un mensaje se agradece!