JEE con JBoss y Netbeans: La primera aplicación JEE

 JEE con JBoss y Netbeans: La primera aplicación JEE
Vamos a hacer una aplicación JEE muy básica, compuesta por una Bean que correrá en el contenedor de aplicaciones y un servlet en el servidor web como capa de presentación que interacturará con dicha Bean, usando instanciación remota.

Creando el proyecto base

Con Netbeans es muy sencillo generar una base sólida y completa para empezar a crear nuestra primera aplicación JEE. Basta con seguir lo siguientes pasos:

  • A través de la opción File > New project aparecerá el diálogo que nos permitirá escoger los diferentes tipos de proyecto soportados. En la primera pantalla escogeremos la opción Enterprise Application, dentro de la categoria Java EE.

  • En la siguiente pantalla especificaremos la ruta de los fuentes y el nombre del proyecto, y lo marcaremos como el Main Project.

  • Especificaremos el servidor JBoss a utilizar. Si aún no lo hemos registrado lo podremos hacer con el botón Add que vemos en ésa misma pantalla. Muy importante, tendremos que marcar la generación del módulo EBJ y de la aplicación web.

Cuando pulsemos el botón Finish veremos tres proyectos. El primero tan sólo aglutina los otros dos proyectos y genera el empaquetado (EAR) final, los otros dos son los que definirán las beans y los servlets de nuestra aplicación JEE.

Creando la Bean e implementando funcionalidad

Abriendo el proyecto EJB, usando el menú contextual sobre la rama Source Packages, podremos crear cualquiera de los tres tipos de Beans de las que hemos hablado. Para éste ejemplo, haremos lo siguiente:

  • Con el menú contextual, crear una Session Bean.

  • Especificar un nombre y un paquete, y seleccionar el modo Stateless.

  • No marcaremos ninguno de los interfaces (ni Home ni Remote), los haremos nosotros a mano.

Añadiremos un método a la Bean, algo sencillo para poder probar el funcionamiento remoto de nuestro objeto. Tras hacer eso tendremos un código como el siguiente:

package com.serone.cursoblog;

// Imports necesarios

import javax.ejb.Stateless;

import javax.ejb.Remote;

/**

* Bean de testeo

* @author doctor@serone.org

*/

@Stateless

@Remote(SessionBeanRemote.class)

public class SessionBean implements SessionBeanRemote

{

/**

* Método de testeo para usar desde un servlet remoto

* @return Una cadena a mostrar en el servlet

*/

@Override

public String holaMundo()

{

return “Hola, mundo!”;

}

}

Vemos que JBoss y las JEE dan mucha importancia a las anotaciones (las etiquetas precedidas por una @), que especificarán cómo han de funcionar los objetos dentro del cotnenedor y nos ahorrarán mucho trabajo. Muy importantes.

¡Ojo! Nosotros añadiremos unas cuantas cosas al código generado:

  • El implements SessionBeanRemote, el intefaz remoto de la Bean que crearemos a continuación.

  • El @Override al método público, pues estará definido en el interfaz remoto.

  • Sustiuiremos la anotación @LocalBean por @Remote(SessionBeanRemote.class), para enlazar la Bean con su interfaz.

Ahora crearemos el interfaz remoto, creando una nueva Java Class desde el menú contextual de Netbeans sobre el paquete en el que hemos colocado nuestra Bean. La nombraremos con el mismo nombre que la Bean anterior, con la palabla Remote al final. Tras crearla, pegaremos el código siguiente:

package com.serone.cursoblog;

// Imports necesarios

import javax.ejb.Remote;

/**

* Interfaz remoto

* @author doctor@serone.org

*/

@Remote

public interface SessionBeanRemote

{

// Métodos públicos

public String holaMundo();

}

Con ésto ya tendremos una Bean que se ejecutará en nuestro contenedor de aplicaciones y que nos brinda una funcionalidad usable por nuestra aplicación web icon smile JEE con JBoss y Netbeans: La primera aplicación JEE

Creando el servlet y usando la Bean

Abriendo el proyecto WAR, usando el menú contextual sobre la rama Source Packages, podremos crear nuestros servlets. Para éste ejemplo, haremos lo siguiente:

  • Con el menú contextual, crear un Servlet.

  • Especificar un nombre y un paquete.

  • Especificar que añada la información necesaria al web.xml y especificar el nombre del Servlet y el patrón de dirección (la URL que hay que escribir en el navegador para ejecutarlo).

Tras pulsar el botón Finish, tendremos un archivo de código bastante extenso, del que tan sólo un método nos interesa:

/**

* Processes requests for both HTTP <code>GET</code> and

* <code>POST</code> methods.

* @param request servlet request

* @param response servlet response

* @throws ServletException if a servlet-specific error occurs

* @throws IOException if an I/O error occurs

*/

protected void processRequest

(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException

{

// Contenido del servlet

}

Éste método es el que se ejecuta con cada petición a la URL que hemos especificado a la hora de crear el servlet. Dentro de él usaremos la Bean que hemos creado anteriormente. El código final del método sería algo como:

response.setContentType(“text/html;charset=UTF-8″);

PrintWriter out = response.getWriter();

try

{

out.println(“<html>”);

out.println(“<head><title>Testeo de un servlet</title></head>”);

out.println(“<body>”);

// Buscamos nuestra Bean

InitialContext ic = new InitialContext();

SessionBeanRemote bean = (SessionBeanRemote)ic.lookup(

“java:global/CursoBlog/CursoBlog-ejb/SessionBean”);

if(bean!=null)

{

// Ejecutamos el método remoto

out.println(bean.holaMundo());

}

else

{

out.println(“¡No se ha encontrado la bean!<br/>”);

}

}

catch(Exception e)

{

out.println(“¡Algo ha sucedido! “+e.getMessage()+”<br/>”);

}

finally

{

out.println(“</body>”);

out.println(“</html>”);

out.close();

}

Y con ésto ya tenemos las dos partes de nuestra aplicación web implementadas y enlazadas icon smile JEE con JBoss y Netbeans: La primera aplicación JEE

Conclusiones

Creando nuevas Beans y Servlets podremos añadir todo tipo de funcionalidades a nuestra aplicación web. Además, los diferentes tipos de Beans nos brindan soluciones para cumplir cada una de las tareas requeridas por las funcionalidades de nuestro proyecto. Aquí hemos descrito la base de todo, próximamente iremos desgranando el funcionamiento de cada tipo de Bean y las cosas que podemos hacer desde nuestros servlets para hacer aplicaciones web alucinantes.

Y recordad, Code is Poetry icon smile JEE con JBoss y Netbeans: La primera aplicación JEE

JEE con JBoss y Netbeans: Conceptos básicos

 JEE con JBoss y Netbeans: Conceptos básicos
Vamos a aprender los conceptos básicos de una aplicación JEE, y a aprender más sobre Beans, Servlets y JSPs, y el resto de las tecnologías básicas de las aplicaciones Java Enterprise.

¿Qué es contenedor de aplicaciones? Descripción de JBoss

La Wikidepdia habla mejor que yo:

JBoss AS es el primer servidor de aplicaciones de código abierto, preparado para la producción y certificado J2EE 1.4, disponible en el mercado, ofreciendo una plataforma de alto rendimiento para aplicaciones de e-business. Combinando una arquitectura orientada a servicios revolucionaria con una licencia de código abierto, JBoss AS puede ser descargado, utilizado, incrustado y distribuido sin restricciones por la licencia. Por este motivo es la plataforma más popular de middleware para desarrolladores, vendedores independientes de software y, también, para grandes empresas.

Al ser Java, es un servidor de aplicaciones multiplataforma, y viene cargadito de múltiples caracteristicas más que jugosas, como:

  • Cumple todo tipo de estándares

  • Es incrustable, sin restricciones por su licencia abierta

  • El sun middleware apto para cualquier objeto Java

  • Implementa de forma nativa EJB 3, Hibernate, etc…

  • Dispone de un servidor Tomcat integrado

  • Y mucho, mucho, mucho más icon smile JEE con JBoss y Netbeans: Conceptos básicos

Lée la página de JBoss en la Wikipedia para conocer todos los detalles en profundidad.

¿Qué es una Bean? Tipos de Beans

Una Bean es un objeto Java que corre dentro del contenedor de aplicaciones y cumple una función específica en nuestra aplicación JEE. Hay tres tipos básicos de Beans (EJBs), cada uno de ellos con propósitos muy diferentes:

  • Session Bean: Realiza una tarea para un cliente, una acción concreta de la lógica de negocio. Representa el grueso de proceso de la aplicación, e implementa la funcionalidad de la misma.

  • Entity Bean: Representa una entidad de negocio que presiste en un almacenamiento externo (como una BD). Serán utilizadas por ORMs como Hibernate para implementar la persistencia de datos de la aplicación.

  • Message-Driven Bean: Actúa como un Listener para la Java Message Service API, procesando mensajes de forma asíncrona.

Cada EJB define dos interfaces, un interfaz Home y un interfaz Remote, que engloban las funcionalidades de la bean según quien vaya a consumirlas. Nosotros, en éste manual, pasaremos de las interfaces Home y usaremos tan sólo el interfaz Remote.

Más adelante, en los ejemplos concretos, explicaremos cómo implementarlos y cómo utilizarlos a través de la RMI (instanciación remota, usando los mecanismos que nos brinda el servidor de aplicaciones Java, es decir, JBoss).

¿Qué es un servlet? ¿Y un JSP? Diferencia entre ambos

Los servlets y los JSPs son en realidad la misma cosa, pero con diferente envoltura.

Un servlet es un objeto que se ejecuta en el contexto del servidor web (como el Tomcapt que JBoss tiene integrado). Se pueden mapear las peticiones de los usuarios a dichos servlets, para poder servir contenidos web dinámicos. Es un estandar muy bien definido y permite extender la funcionalidad del servidor web de forma cómoda y eficiente. Es un objeto java puro y duro.

Por otro lado, un JSP es una forma simplificada de generar servlets, pues cada JSP se convertirá a servlet de forma automática antes de atender peticiones. Un JSP combina código Java con HTML de forma que el desarrollo de páginas dinámicas se acerca mucho más a la forma de programar de otros lenguajes como el popular PHP.

Ambas son buenas tecnologías, pero en éste tutorial usaremos tan sólo Servlets.

Conclusiones

JBoss y las tecnologías Java nos dan una base maravillosa para desarrollar aplicaciones web escalables, sólidas y profesionales. En lecciones sucesivas iremos desgranando todo el potencial de ésta plataforma.

Y recordad, Code is Poetry icon smile JEE con JBoss y Netbeans: Conceptos básicos

Etiquetas: , , , ,

Disclaimer: Las imágenes mostradas en ésta página web se utilizan sólamente con propósitos ilustrativos, y son propiedad de sus respectivos autores (cuando es aplicable).
Hijo de Blog es un producto del Dr. SeROne

Los contenidos se ofrecen bajo una licencia de Creative Commons
Attribution-NonCommercial-NoDerivs 3.0 Unported

salvo que se indique lo contrario

Licencia de Creative Commons