Terminator 3 … jajajja
Les dejo este trailer que encontre en youtube… esta bastante bueno…. nada que ver con la movie original
Les dejo este trailer que encontre en youtube… esta bastante bueno…. nada que ver con la movie original
Buenas tardes, ultimamente me he tenido que meter mas y mas con java.
Actualmente el sitio donde laboro, se dedica a diseñar una serie de soluciones con Java.
Ahora ha tocado el turno a una solucion que implementa (todo esto sobre un Fedora 9):
* Apache HTTPD - Version 2.2.4
* JBoss AS - Version 4.2.0.GA
* mod_jk (JK) - Version 1.2.23
* jdk-1_5_0_16-linux-i586.bin
Lo primero es Bajarce una version de java… en este caso me he descargado la 1.5
jdk-1_5_0_16-linux-i586.bin
La aplicacion para la cual he de montar mi servidor de aplicacion es un carrito de compras por lo que le he asignado un usuario en el sistema Fedora Linux 9:
# useradd carrito && passwd carrito && exit $ echo "export JAVA_HOME=$HOME/jdk" >> $HOME/.bash_profile $ echo "export JRE_HOME=$JAVA_HOME/bin" >> $HOME/.bash_profile $ echo "export PATH=$PATH:$JRE_HOME" >> $HOME/.bash_profile
Al usuario carrito le he asignado el password “carrito” (ya te toca a ti alimentar eso!):
Las siguientes tres lineas de comando agregan los paths que voy a requerir para que java funcione en mi entorno carrito. OJO: esto hazlo como el usuario carrito en el directorio $HOME
Ahora procedo a instalar java… son requeridos permisos de ejecucion para el binario.
OJO: no hagas esto como root
$ echo "instalando java en mi directorio $HOME de carrito" && cd $ chmod 755 jdk-1_5_0_16-linux-i586.bin && ./jdk-1_5_0_16-linux-i586.bin
Una ves que ya hice esto genero un enlace simbolico al directorio de jdk para solventar las dependencias que ya alimente en el archivo .bash_profile de mi directorio home del usuario carrito.
$ echo "Generando ruta estandar para actualizaciones futuras de jdk" && cd $ ln -s $HOME/jdk1.5.0_16/ $HOME/jdk
Necesitaremos apache para la magia… mas adelante relato para que:
# echo "como root instalate apache en fedora" # yum install httpd-devel httpd
Ahora nos bajamos la version de jboss 4 y la desempaquetamos… ojo recuerda bajar
los binarios y no las fuentes…
$ echo "Generando ruta estandar para actualizaciones futuras de jboos" && cd $ ln -s $HOME/jboss-4.2.3.GA/ $HOME/jboss
Ahora simplemente salte de la session del usuario carrito y entra de nuevo…
Prueba arrancar jboos asi:
$HOME/jboss/bin/run.sh
Bueno..
ya tienes corriendo jboss ahora paralo…
ya viste que funciona haciendo una prueba asi
links http://localhost:8080
Si la haces con un firefox… pues da igual… pero yo no acustro a tener cargado X en servidores de aplicacion…
en fin la cosa ya funciona…
Entonces para jboss con control + C
Ahora instalaremos el tomcat conector:
El cual puedes descargar de la siguiente url http://tomcat.apache.org/download-connectors.cgi
Me he descomprimido las fuentes en esta ruta $HOME/software_instalable/tomcat-connectors-1.2.27-src/
$ cd $HOME/software_instalable/tomcat-connectors-1.2.27-src/native $ ./configure --with-apxs=/usr/sbin/apxs && make $ su root # make install # ls /usr/lib/httpd/modules/mod_jk.so -l
Como veras ya creamos el agregado para apache 2 para conectarlo con jboss
# Request HTTP de un metodo POST
req = self.request()
#Valida el campo login
if not re.match (’[A-Za-z0-9\-]’,req.field(’login’)):
raise ValidarError, “El login no puede contener simbolos de puntuacion”
#Valida el campo username
if not re.match (’[.A-Za-z]’,req.field(’username’)):
raise ValidarError, “Nombre de Usuario no valido”
#Validando el correo el electronico
if not re.match (’^[^@ ]+@[^@ ]+.[^@ .]+$’,req.field(’email’)):
raise ValidarError, “Correo Electronico no valido”
#Validando una fecha mm-dd-yyyy
if not re.match (’^[0-1][0-9][-/][0-3][0-9][-/][0-9]\{4\}$’,req.field(’fecha’)):
raise ValidarError, “Fecha no valida”
#Validando un precio unitario (cantidad en moneda x)
if not re.match (’^\b[0-9]{1,3}(?:,?[0-9]{3})*(?:\.[0-9]{2})?\b’, req.field(’precio’)):
raise ValidarError, “Cantidad invalida”
#Valida una fecha de manera mas exacta yyyy-mm-dd
if not re.match (’^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$’ , req.field(’fecha’)):
raise ValidarError, “Fecha no valida”
#Valida un punto flotante negativo o positivo
if not re.match (’^[-+]?[0-9]*\.?[0-9]*$’ , req.field(’numero_punto_flotante’)):
raise ValidarError, “Numero no valido”
#Valida una notacion cientifica 1.5e8
if not re.match (’^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$’ , req.field(’numero_punto_flotante’)):
raise ValidarError, “Numero no valido”
La siguiente checa que el correo sea valido… no trates de entenderla solo lo hace…
if not re.match( '^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[x01-x08x0bx0cx0e-x1fx21x23-x5bx5d-x7f]|\[x01-x09x0bx0cx0e-x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[x01-x08x0bx0cx0e-x1fx21-x5ax53-x7f]|\[x01-x09x0bx0cx0e-x7f])+)])$' , req.field('email')):
raise ValidarError, "Correo electronico no valido"
#Validanto tarjetas de credito
Expresion regular para VISA: ^4[0-9]{12}(?:[0-9]{3})?$
Expresion regular para MasterCard: ^5[1-5][0-9]{14}$
Expresion regular para American Express: ^3[47][0-9]{13}$
Expresion regular para Diners Club: ^3(?:0[0-5]|[68][0-9])[0-9]{11}$
Expresion regular para Discover: ^6(?:011|5[0-9]{2})[0-9]{12}$
Expresion regular para JCB: ^(?:2131|1800|35\d{3})\d{11}$
# Si deseas checar el numero de tarjeta que sera valido en un solo campo… tu pueda unir las expresiones regulares mediante el simbolo pipe de unix
* 000..255: ^([01][0-9][0-9]|2[0-4][0-9]|25[0-5])$
* 0 or 000..255: ^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$
* 0 or 000..127: ^(0?[0-9]?[0-9]|1[0-1][0-9]|12[0-7])$
* 0..999: ^([0-9]|[1-9][0-9]|[1-9][0-9][0-9])$
* 000..999: ^[0-9]{3}$
* 0 or 000..999: ^[0-9]{1,3}$
* 1..999: ^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$
* 001..999: ^(00[1-9]|0[1-9][0-9]|[1-9][0-9][0-9])$
* 1 or 001..999: ^(0{0,2}[1-9]|0?[1-9][0-9]|[1-9][0-9][0-9])$
* 0 or 00..59: ^[0-5]?[0-9]$
* 0 or 000..366: ^(0?[0-9]?[0-9]|[1-2][0-9][0-9]|3[0-6][0-9]|36[0-6])$
Una direccion ip
'b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)b'
Verifica la correcta escritura de un path en windows : ‘\b[a-z]:\\[^/:*?”<>|\r\n]*’
Los passwords bastara con que los guardes en tu base de datos como una columna del tipo char de tamaño 40… no requieres mas..