Mostrando entradas con la etiqueta java. Mostrar todas las entradas
Mostrando entradas con la etiqueta java. Mostrar todas las entradas

jueves, 16 de abril de 2015

Instalación de Postgresql, Java, Jboss, en Linux Centos, para alojar aplicación genexus

En el siguiente post voy a comentar todos los pasos que tuve que dar para poder tener una máquina virtual (en mi caso pero podría ser un equipo físico) con Jboss y que funcione una aplicación generada con genexus.
Detalle de software que utilice.
Linux Centos 6.4 minimal
Genexus Evo3 U1
Java 7
PostgreSql 9
Jboss 7.1.1

Voy a ir contando paso a paso lo que hice y por qué.

Primero tengo que instalar Centos, eso no lo voy a detallar pero comento que descargue la versión 6.4 que la tuve que buscar bastante porque estaba discontinuada por no tener mantenimiento (necesitaba que fuera esa versión porque estaba replicando un ambiente de producción). Luego de tener la instalación completa, la actualizamos

yum update
yum upgrade

Luego de tener el equipo instalado y funcionado con las últimas actualizaciones vamos a empezar a instalar el software base.
Con el siguiente comando vemos la versión de java que podríamos instalar
yum search java | grep 'java-'

Buscamos la versión 7 y corremos lo siguiente
yum install java-1.7.0-openjdk-src.x86_64

Ahora vamos a instalar PostgreSQL, con la misma idea buscaos la versión que tenemos en los repositorios e instalamos la que queramos.
yum install postgresql-server.x86_64
Luego vamos a configurar postgresql, debemos de seguir la siguiente secuencia

service postgresql initdb
service postgresql start
su postgres
psql
ALTER USER postgres WITH PASSWORD ‘pass_que_prefiera;
\q
Exit

Si vamos a acceder desde afuera deberíamos de tocar los siguientes archivos
/var/lib/pgsql/data/pg_hba.conf
En mi caso como si quiera accede desde afura tuve que dejarlo asi:
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust
#######ident
host    all         all         192.168.73.153/32           trust

Y el archivo postgresql.conf debo de buscar las líneas que están comentadas y des comentarlas y modificarlas para que quede así:
listen_addresses = '*'
port = 5432 

Ahora debemos de continuar instalando jboss, para eso instalamos algunas herramientas previas

yum install wget
yum install unzip

Ahora descargamos e instalamos jboss

wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip
unzip jboss-as-7.1.1.Final.zip -d /usr/share
adduser jboss
chown -fR jboss.jboss /usr/share/jboss-as-7.1.1.Final/
su jboss
cd /usr/share/jboss-as-7.1.1.Final/bin/
./add-user.sh (ManagementRealm, usuario foo y pass)

Ahora ejecutamos jboss y probamos que funciones accediendo por el navegador, por las dudas bajamos el firewall porque por defecto tiene reglas y pueden hacernos ruido en este paso.

Limpiar las reglas de iptables (firewall)
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Levantar jboss (ver que no de ningún error)

/usr/share/jboss-as-7.1.1.Final/bin/standalone.sh -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0&
Acceder de cualquier navegador a la ip del equipo y debería de mostrarnos la página de jboss inicial.

Con esto tendremos casi todo, pero lo mejor es dejar el firewall con las reglas que tiene y agregar nuestras reglas.
Les dejo un ejemplo del archivo /etc/sysconfig/iptables en el que expongo el puerto 8080 para jboss, el 9990 para la consola de administración de jboss, y el 5432 para conectarme a postgres desde fuera (esto si es producción no se debería de agregar)

############### archivo /etc/sysconfig/iptables ########################
# Generated by iptables-save v1.4.7 on Wed Apr 15 07:59:02 2015
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [13:1644]

-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9990 -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

# jboss
-A FORWARD -p tcp -m tcp --dport 8080 -j ACCEPT

# postgresql
-A FORWARD -p tcp -m tcp --dport 5432 -j ACCEPT

# jboss admin
-A FORWARD -p tcp -m tcp --dport 9990 -j ACCEPT


-A FORWARD -j REJECT --reject-with icmp-host-prohibited

-A OUTPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 5432 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 9990 -j ACCEPT

COMMIT
# Completed on Wed Apr 15 07:59:02 2015
############### FIN ######################################


Ademas deberiamos de configurar para que jboss se levantara cada vez que se reinicie el servidor, yo cree un arrancador muy basico que se puede configurar a nuestras necesidades. Este archivo se podria llamar /etc/init.d/jobss711

######################### archivo /etc/init.d/jobss711 #################3

#!/bin/bash 
### BEGIN INIT INFO 
# Provides:          jbossas7 
# Required-Start:    $local_fs $remote_fs $network $syslog 
# Required-Stop:     $local_fs $remote_fs $network $syslog 
# Default-Start:     2 3 4 5 
# Default-Stop:      0 1 6 
# Short-Description: Start/Stop JBoss AS 7 
### END INIT INFO 
# chkconfig: 35 92 1 
 
## Include some script files in order to set and export environmental variables 
## as well as add the appropriate executables to $PATH. 
[ -r /etc/profile.d/java.sh ] && . /etc/profile.d/java.sh 
[ -r /etc/profile.d/jboss.sh ] && . /etc/profile.d/jboss.sh 
 
JBOSS_HOME=/usr/share/jboss-as-7.1.1.Final
 
AS7_OPTS="$AS7_OPTS -Dorg.apache.tomcat.util.http.ServerCookie.ALLOW_HTTP_SEPARATORS_IN_V0=true"   ## See AS7-1625 
AS7_OPTS="$AS7_OPTS -Djboss.bind.address.management=0.0.0.0" 
AS7_OPTS="$AS7_OPTS -Djboss.bind.address=0.0.0.0" 
 
case "$1" in 
    start) 
        echo "Starting JBoss AS 7..." 
        #sudo -u jboss sh ${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS           ##  If running as user "jboss" 
        #start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/standalone.sh -- $AS7_OPTS   ## Ubuntu 
        ${JBOSS_HOME}/bin/standalone.sh $AS7_OPTS & 
    ;; 
    stop) 
        echo "Stopping JBoss AS 7..." 
        #sudo -u jboss sh ${JBOSS_HOME}/bin/jboss-admin.sh --connect command=:shutdown            ##  If running as user "jboss" 
        #start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/jboss-admin.sh -- --connect command=:shutdown     ## Ubuntu 
        ${JBOSS_HOME}/bin/jboss-cli.sh --connect command=:shutdown 
    ;; 
    *) 
        echo "Usage: /etc/init.d/jbossas7 {start|stop}"; exit 1; 
    ;; 
esac 
 
exit 0

######################### FIN archivo #################

Con chkconfig podremos agregarlo para que inicie y finalice cuando arranquemos o apaguemos el equipo, ver como se adapta a cada instalación de Linux, por ejemplo si quieren que se arranque cuando iniciamos entorno grafico o no. Por ejemplo algo asi
chkconfig –level 345 jboss711 on

Probemos en reiniciar el equipo y probar que siga funcionando jboss y postgresql

Esta todo funcionando, ahora lo único que falta es crear el war desde gx, con el Depoyment wizard sin hacer ningún cambio, lo único que hay que hacer es agregar todas las clases al war generado (se puede editar con winzip) ya que genexus solo agrega algunas y si se quiere agregar cuando se está generando desde la aplicación DW de gx se cae (en mi caso, pueden probarlo ustedes).
Y por último hay que tirar el war en /usr/share/jboss-as-7.1.1.Final/standalone/deployments, mirar el log y ver que no tire ningún error, y por último en un navegador accede a la aplicación.
Recordar que el link sería algo así:



jueves, 10 de mayo de 2012

Administrar mi android desde el PC

Hay muchas aplicaciones que dejan acceder a algunas cosas del celular desde el pc, por ejemplo AirDoid es una de estas, que deja escribir un sms desde el pc y muchas cosas mas. Pero yo necesitaba algo mas, por ejemplo utilizo bastante WhatsApp, y no he encontrado ninguna aplicacion que desde el PC se pueda escribir. Como tengo un celular de 3 pulgadas (chico) escribir es a veces un poco complicado y como estoy todo el dia con la computadora, necesitaba algo al estilo VNC o similar que me conectar al escritorio android.
Una aplicacion Java realiza esto, y es fantástico, la idea es conectar el celular por el cable usb, luego ejecutar esta aplicacion, y en el escritorio se nos abre una pantalla la cual es exactamente lo que estas viendo en el celular, es mas si tu presionas un icono de una aplicacion, en el celular vas a ver que se realiza lo mismo.

Entonces con esto podemos hacer casi todo lo mismo que si tuviéramos el celular en la mano, pero desde una pantalla en windows (supongo que como es java también funciona en linux, pero no lo he probado). No tengo que comentarle que escribir un mensaje es WhatsApp desde el teclado de mi PC es muy muy facil comparado con escribir en la pantalla del celular.
Ojo, que no es todo tan lindo como parece, por ejemplo lo que me pasa a mi (no se si es porque tengo Cyanogen Mod 7 instalado o porque es) es que cada tanto, se reinicia el celular solo.
Ademas hay cosas que no se como hacerlas, por ejemplo el desbloqueo del celular lo tengo que hacer directamente en el celular, despues is me puedo manejar con el mouse y el teclado del pc.

Bueno explicare que es lo que hay que hacer para usar la aplicacion.
Primero descargar androidscreencast.jnlp, esta en muchos lugares para hacerlo.
Después tener un celular con Android, en mi caso lo probe con 2.2 y 2.3.7, no lo he probado con la versión 4, pero me han comentado que no funciona.
Tener instalado el sdk de Android (los desarrolladores este paso lo saltamos porque si o si lo tenemos que tener instalado)
Enchufar el celular al pc
Y por ultimo ejecutar el programa java que descargamos, a los pocos segundos vas a ver la ventana con el escritorio de tu android.
A mi me pasa que la primera vez que lo ejecuto tengo que escanear los dispositivos conectados a mi pc, para esto desde una pantalla dos, me voy hasta la carpeta donde instalamos el SDK, en la carpeta plataform-tools, ejecutamos adb devices, esto me tiene que tirar por pantalla por lo menos 1 registro en el que muestra el nombre de nuestro celular.



jueves, 1 de abril de 2010

Penca Mundial 2010

En esta oportunidad no es información técnica lo que voy a compartir, solamente voy a promocionar una penca para el Mundial Sudáfrica 2010 de fútbol.
La misma la he realizado enteramente yo y es solo (por ahora) por diversión, así que espero los comentarios, las quejas, las preguntas, etc.

Datos técnicos de la aplicación:
Realizada con Genexus Evolution, generando para java y base de datos mysql.

http://pencamundial2010.servegame.com:8080/mundial/servlet/inicio

Bueno ahora mejore un poco el acceso a la penca, ya que cambie el servidor que esta esta aplicación, les paso el nuevo link. Ademas si entraron las primeras veces van a ver muchos cambios.

http://pencamundial2010.servegame.com/mundial/servlet/login

Estimados, ahora ya tenemos dominio propio y podemos acceder por la siguiente dirección
http://www.juegauruguay.net
Ademas anexamos una penca paga, con los cual cada usuario puede jugar pagando solo 150$, y se llevara el premio, que es la suma de lo que todos apuesten. si la cantidad de usuarios es bastante, entonces se podrá poner no solo premio para el primero sino también para los siguientes puestos.

Espero que el tiempo que haya estado bajo la aplicación (ya que se tuvo que migrar a este nuevo sitio), que fue de un par de horas, no les haya causado muchos problemas. Gracias por entender.


Amigos de JuegaUruguay.net, ya estamos a unos pocos dias de iniciar la copa del Mundo Sudáfrica 2010. Si ya están registrados (recuerden que es gratis) en la penca, quizás recibieron las noticias que cada cierto tiempo estoy enviando y sabrán que ya superamos los 200 jugadores.
Si todavía no se registraron, registrense, y empiecen a jugar.

lunes, 8 de febrero de 2010

Compilar java desde consola

Cuando no tenemos Eclipse o cualquier otro Ide para que no ayude, entonces tenemos que hacerlo todo desde consola, lo único que precisamos es tener el JDK instalado para tener el javac que es el compilador de java.

Este es un ejemplo de cómo compilar una clase java desde consola, supongo que se necesita por lo menos una jar (en este caso un jar de genexus)

javac -cp .;GXClassR.jar archivo.java

-cp nos dise que el classpath además de tener el que esta guardado en la variable de ambiente (esto con el punto ".") además utilizamos el o los jar que le indiquemos separados por punto y coma (;) si es windows y dos puntos (:) si es Linux

Esto nos genera un archivo.class que lo copiamos al webapp y listo ya tenemos nuestro programa para poder ejecutarlo.

viernes, 15 de enero de 2010

Instalar Java 6 en Ubuntu 9.10

Como algun amigo tiene que instalar Java en Ubuntu, y tiene que hacerlo desde consola y no le gusta, ademas no es muy experto en linux, le comento como tiene que hacer para instalarlo.

Primero tiene que ver que el source.list este bien (si esta por defecto de instalacion ya es suficiente, pero si lo toco por algo tiene que revisarlo), para esto tenemos que editar el archio que esta en

/etc/apt/source.list

Despues hay que actualizar los sources

> apt-get update

Despues hay que instalar java (obviamente antes hay que loguearse con root, sudo -s)

> apt-get install sun-java6-jdk

viernes, 4 de diciembre de 2009

Java, Tomcat, Cambio de hora

Se que el titulo no dice mucho, pero en Uruguay, se cambia el horario en el verano, entonces en algunas aplicaciones que corren bajo tomcat, este a veces se marea con la hora y cuando ponemos una fecha, el sistema solo cambia la fecha para un día antes.


Esto lo que hace es bastante complicado pero muy fácil de solucionar, lo que hay que decirle es al arrancar tomcat, exportar una variable que utiliza java.


Entones yo supongo que estamos en un servidor Linux, y que al arrancar tomcat que lo hacemos con un script de inicio en /etc/init.d, le pasamos unos parámetros para que la maquina virtual de java se levante con alguna memoria mínima, máxima, etc. Entonces lo que hacemos es lo siguiente



export JAVA_OPTS="-Xms512M -Xmx1200M -XX:MaxPermSize=384M -XX:PermSize=128M -Duser.timezone=GMT-03:00"


Lo que interesa para el cambio de día, es la ultima parte (-Duser.timezone=GMT-03:00) esto hay que configurarlo según la zona horaria.


Luego solo con reiniciar tomcat la aplicación ya no se "mareara"con la hora.



Volver al inicio

sábado, 19 de julio de 2008

Error en tomcat 6 con java 6

No se bien cual fue el problema, no lo investigue mucho tiempo, pero instale un windows XP de cero, luego instalar java, JRE 1.6.02 (también lo probé con 1.6.04), luego tomcat 6, y no arrancaba.


El error que salta es el siguiente




[2008-07-19 20:59:00] [986 prunsrv.c] [error] Failed creating java C:\Archivos de programa\Java\jre1.6.0_02\bin\client\jvm.dll


[2008-07-19 20:59:00] [1260 prunsrv.c] [error] ServiceStart returned 1


[2008-07-19 20:59:00] [info] Run service finished.


[2008-07-19 20:59:00] [info] Procrun finished.


[2008-07-19 21:08:09] [info] Procrun (2.0.3.0) started


[2008-07-19 21:08:09] [info] Running Service...


[2008-07-19 21:08:09] [info] Starting service...


[2008-07-19 21:08:09] [174 javajni.c] [error] No se puede encontrar el módulo especificado.




Luego buscando un poco en internet encontre lo siguiente




copiar el archivo msvcr71.dll de %java_home%/bin a window/system32




Y con esta simple solucion quedo todo andando.



Volver al inicio