Buscar (Don't Edit)

jueves, 23 de mayo de 2013

Como levantar un ambiente para JavaEE con Eclipse+Maven+Glassfish en W7

Una de las tareas mas importantes-al igual que tediosas-en la vida del programador, es preparar un ambiente de desarrollo de aplicaciones. Si bien puede ser una tarea por momentos aburrida(si lo sabre yo), es algo realmente necesario y sobre todo útil para poder desarrollar sobre un ambiente seguro.


Material
Antes de empezar veamos todo lo que necesitamos descargar:

  1. JDK de Java (de preferencia el 6) - Java Development Kit 6 update 45
  2. Eclipse (Yo use Juno, pero pueden usar también Helios) - Eclipse Juno 4.2
  3. Apache-Maven - Maven 2.2.1
  4. Glassfish Server - Glassfish
  5. JDBC driver (dependiendo del motor de BD que usen, yo use SqlServer Management Studio) - sqljdbc4.jar
Instalación
1. Lo primero que haremos será ejecutar el instalador del jdk de java. Solo denle doble click al instalador y sigan las instrucciones del asistente.

2. Lo siguiente es instalar Maven, pero ¿Qué es Maven? Maven es un framework para gestionar nuestros proyectos, para hacer esto Maven hace uso de archivos pom.xml que utiliza para construir el proyecto con sus dependencias, además de compilar, testear, empaquetar, instalar e implementar aplicaciones. A continuación descomprimimos el archivo que descargamos de Maven, y nos generará una carpeta la cual copiaremos en C:\ (de preferencia, puede ser en cualquier otra ubicación), si quieren pueden renombrar esta carpeta a un nombre mas simple, yo le cambie el nombre a "maven".

3. Ahora viene una de las partes mas importantes, definir nuestras variables de entorno. Muchas de las veces por las que no conseguimos montar bien este ambiente es por definir mal nuestras variables de entorno. Para esto nos iremos a Equipo->Propiedades->Configuración Avanzada->Variables de Entorno. Veremos la siguiente ventana:

Lo que haremos a continuación sera crear dos nuevas variables: JAVA_HOME y M2_HOME. Esto lo hacemos en la parte de Variables del sistema, haciendo click en "Nueva".
Añadiremos primero JAVA_HOME y en Valor le pondremos la ruta donde tenemos instalado nuestro jdk de Java, por default en C:\Program Files\Java\jdk1.6.0_26
Ahora crearemos otra variable llamada M2_HOME y en valor le pasamos la ruta de nuestra carpeta de maven

La ultima variable a configurar es la de PATH, esta no la crearemos porque ya existe, la buscamos y editamos agregándole al final lo siguiente: %JAVA_HOME%bin;%M2_HOME%bin; Lo que estamos haciendo aquí es hacer referencia en el PATH a las variables que ya creamos, por lo que también podemos agregar las direcciones tal cual lo hicimos en las variables anteriores pero agregandoles el subdirectorio /bin.

Para comprobar si hemos realizado este paso de manera correcta. Abriremos una consola y escribiremos lo siguiente:
Para java -> java -version
Para Maven -> mvn -v

Si para cada una de las comprobaciones les tira resultados como los de la imagen de arriba, entonces hemos configurado bien nuestras variables de entorno.
NOTA 3.1: Si no les sale el mensaje de confirmación de Maven, vayan a la variable PATH y borren la referencia a la variable M2_HOME (%M2_HOME%bin) y peguen la ruta del directorio bin de Maven  tal cual (C:\maven\bin).
NOTA 3.2: Les recomiendo que cada vez que configuren una variable, denle click en Aceptar, cierren la ventana de consola que tengan abierta y abran una nueva, para que les cargue las nuevas variables.

Si vamos a C\Users\mi_usuario\ debemos de poder ver una carpeta de nombre .m2, esta carpeta será nuestro repositorio y ahí iremos colocando todas las librerías que utilicemos en nuestro proyecto.

NOTA:  Si no les genera la carpeta .m2, lo único que tienen que hacer es abrir la consola e introducir el comando mvn y listo, ya tendrán la carpeta.

4. Ahora procederemos a instalar Glassfish ¿Que qué es Glassfish? Pues es un servidor de aplicaciones empresariales de Java (JEE o J2EE) donde podemos conectarlas a distintas bases de datos y servidores de manera sencilla, por decir algunas de sus ventajas. Este es un paso muy sencillo, basta con ejecutar el instalador y seguir las instrucciones del asistente. 

Como recomendación desactiven las actualizaciones cuando se las pida. Esto lo hacen desmarcando la casilla como muestra la siguiente imagen.

Ahora solo esperamos hasta que el asistente termine de instalar glassfish. Al finalizar iremos a la carpeta donde lo instalamos (por defecto C:\glassfish3). Una vez dentro iremos a \glassfish\domains y encontraremos una carpeta llamada domain1, este sera el nombre de nuestro dominio de glassfish.
NOTA: Si por casualidad no les crea el dominio, es decir, si su carpeta domains se encuentra vacía,  abran la consola y vayan a la ruta donde se encuentra su instalador de glassfish(el que se descargaron) e introduzcan el siguiente código en la consola: 
nombre_del_instalador_de_glassfish -j "ruta del sdk de java"
En mi caso quedaría de la siguiente manera: glassfish-3.1-windows-ml.exe -j "C:\Program Files\Java\jdk1.6.0_26". Esto es para indicarle a glassfish que se instale con ese jdk. Hagan esto solamente si el instalador no les creó un dominio.

4.1. Antes de continuar con el siguiente punto. Vayamos a los archivos que descargamos y copiemos el sqljdbc4.jar y lo pegamos en C:\glassfish3\glassfish\domains\domain1\lib. Este JAR dependerá del motor de base de datos que usemos.

5. Lo siguiente será levantar el dominio en glassfish para empezar a utilizarlo. Para esto nos vamos nuevamente a nuestra consola y nos dirigimos a la siguiente ruta C:\glassfish3\glassfish\bin, ahora para levantar el dominio introduciremos el siguiente comando: asadmin start-domain domain1

Una vez levantado nuestro dominio, podemos accesar a la consola de administración de glassfish desde nuestro navegador escribiendo en la barra de direcciones localhost:4848, como vemos en las imágenes siguientes.

Otros comando útiles son:
  • asadmin stop-domain nombre_dominio. Detiene el dominio
  • asadmin restart-domain nombre_dominio. Reinicia el dominio
  • asadmin list-domains. Muestra la lista de dominios, muy útil si no recordamos el nombre del dominio

6. Ahora que ya tenemos instalado Java, Maven y Glassfish, utilizaré un proyecto para mostrar como montarlo en nuestro Eclipse. Nos vamos al archivo que descargamos de Eclipse-Juno4.2 y descomprimimos nuestro Eclipse. Ejecutamos el eclipse.exe para abrir el IDE.

Una vez abierto el Eclipse procedemos a montar un proyecto, para esto primero abriremos una consola y nos dirigiremos a la ruta donde se encuentra nuestro proyecto e introduciremos el siguiente comando en la consola: mvn eclipse:eclipse. Esto nos permitirá trabajar con proyectos maven en nuestro IDE.

Al finalizar debemos de ver un mensaje de BUILD SUCCESSFUL.

Ahora ya podemos importar nuestro proyecto en Eclipse. En nuestro IDE nos iremos a File->Import
Seleccionamos General->Existing projects into Workspace

En Select root directory damos click en Browse y seleccionamos nuestro proyecto,


Como mi proyecto se encuentra divido en varios mini-proyectos, tengo que seleccionarlos todos y dar click en Finish.

Ahora ya tenemos nuestro proyecto maven montado en eclipse.
Lo siguiente que haremos sera compilar nuestro proyecto con Maven. Para esto abriremos la consola, iremos a la ruta de nuestro proyecto y tecleamos la siguiente instrucción:
mvn compile install -DskipTests=true -e -o
NOTA: La instrucción -DskipTests=true es para saltarme los casos de prueba, ya que si no la compilación tardaría mucho tiempo.

Al final deberá mostrarnos un mensaje de BUILD SUCCESSFUL.

Esto nos genera un WAR en la parte web de nuestro proyecto (En mi caso \nsjp-web\target\nsjp-web.war). Este WAR seré el que montaremos en nuestro servidor Glassfish
7. Montando la aplicación+BD en Glassfish
El paso final será montar la aplicación en Glassfish junto con nuestra conexión a Base de Datos. Empecemos con la BD, para eso nos vamos al menu JDBC->Conjunto de conexiones y le damos a Nuevo...
Le damos un nombre a nuestro conjunto y escogemos como tipo de recurso DataSource. Para nuestro proveedor de BD elegiremos el motor que estaremos usando, en mi caso el de SqlServer, por esta razón es muy importante descargarnos el JAR adecuado. Damos click en Siguiente...
En la pantalla siguiente nos iremos hasta la parte de abajo a configurar nuestras propiedades de conexión.
Aquí debemos llenar los siguientes campos:
DatabaseName. El nombre de nuestra base de datos
User. Nuestro usuario de BD
Password. Nuestra contraseña de BD
ServerName. El nombre de nuestro servidor de BD, si la tenemos local ponemos localhost o 127.0.0.1. Si por el contrario se encuentra alojada en otra computadora solo tendremos que poner la IP de esa máquina.
Le damos Finalizar.
Para comprobar que glassfish puede ver a nuestra BD hacemos click en Ping o Sondeo. Debemos ver un mensaje de "Ping realizado con éxito"
Lo siguiente es crear un recurso JNDI para nuestro recién creado conjunto de conexiones. Nos iremos a JDBC->Recursos JDBC y click en Nuevo...
Damos un nombre a nuestro JNDI y en Nombre de conjunto apuntamos a nuestro conjunto de conexiones.  Click en Aceptar.
Ahora vayamos a montar la Aplicación. En el menú Aplicaciones, seleccionamos Implementar...

Ahora en ubicación, seleccionamos archivo empaquetado y buscaremos el WAR que nos creó la compilación de nuestro proyecto, en mi caso se generó en  C:\moztrodev_proy\nsjp-web\target\nsjp-web.war. Lo seleccionamos y le damos un root de contexto, éste será el nombre que introduciremos en nuestro navegador para acceder a nuestra aplicación (localhost:8080/moztrodev-web). Damos click en Aceptar.
¡Al fin! Eso es todo. Ahora ya podemos acceder a nuestro proyecto desde nuestro navegador. La primera vez siempre tardará un poco pero sean pacientes. 

Como ven si es una tarea algo tediosa. Pero pueden tener la seguridad de contar con un ambiente de desarrollo confiable para sus proyectos java.

Saludos y hasta la próxima. ;)

3 comentarios:

  1. Bueno este curso fue el que menos me gusto ya que la verdad trata más de la instalación que otra cosa, aunque no se ve tan simple un poco tedioso. Pero como siempre hay que valorar el esfuerzo gracias por el aporte.

    ResponderEliminar
    Respuestas
    1. Cierto, es bastante tedioso, y también es cierto que existen otros ambientes mucho más fáciles de configurar. Pero la realidad es que es algo realmente necesario (configurar un ambiente de desarrollo) y requiere dedicarle su merecido tiempo, vale la pena. Saludos y gracias por leernos ;)

      Eliminar