...
Anchor
El acceso a caracterÃsticas especÃficas características específicas del servidor de aplicaciones y usarlas en tu aplicación aplicación J2EE le harÃa más haría más poderosa que sólo sólo tener acceso a sus caracterÃsticas características propias J2EE. Te proporciona la capacidad de escribir extensiones para tu servidor de aplicaciones.
Esta aplicación aplicación ejemplo enlista a toda pool de conexiones de base de datos definida en Geronimo. Puedes elegir cualquier pool de conexiones y probar su conectividad a la base de datos, asà así como enlistar esquemas y tablas existentes. AdemásAdemás, el usuario puede ver los registros de cada una de las tablas enlistadas.
Con la lectura de este artÃculo deberÃas artículo deberías ser capaz de tener acceso a recursos especÃficos específicos de Geronimo desde tus aplicaciones y usarlos de una forma eficiente.
Este artÃculo artículo esta organizado en las secciones siguientes :-
- Visión Visión General de la AplicaciónAplicación
- Construyendo y Activando la Aplicación Aplicación Ejemplo
- Pruebas de la Aplicación Aplicación Ejemplo
- Resumen
...
Visión General de la
...
Aplicación application
...
Anchor
La apliación ejemplo en este artÃculo artículo te ayudará ayudará a probar las pools de conexiones a bases de datos que se encuentren activas en tu servidor Geronimo. Puedes considerarlo como una extensión extensión a la consola Geronimo, ya que la versión versión actual no contiene la funcionalidad de probar conexiones a pools de base de datos después después de su activaciónactivación.
La figura siguiente ilustra el flujo de la aplicaciónaplicación.
La página página de Bienvenida funciona como un boletÃn boletín de noticias que despliega la lista de pools de conexiones a bases de datos que estén estén activas en el servidor de aplicaciones Geronimo. Los usuarios pueden probar directamente a dichas pools de conexiones desde la primer páginapágina. Si una pool de conexiones particular requiere un username y password para obtener la conexiónconexión, te permite ingresar dichos valores en la ventana pop up que aparece. La lista de esquemas de base de datos y las tablas asociadas con la pool de conexiones será será desplegada en la página página de Esquemas y Tablas. Se puede tener acceso al contenido de cada tabla desde dicha páginapágina.
Contenido de la
...
Aplicación
En el inventario de la aplicación aplicación se encuentra la siguiente lista de paquetes.
- org.apache.geronimo.ejemplos.dbtester.beans
- DBManagerBean - Corazón Corazón de la aplicaciónaplicación, el cual controla la mayor parte de la lógica lógica de la aplicación aplicación (incluyendo el acceso al Kernel de Geronimo).
- org.apache.geronimo.ejemplos.dbtester.web
- ContentTableServlet - Obtiene el contenido de una tabla de la Base de Datos y le dirige a la capa de presentaciónpresentación.
- ListTablesServlet - Obtiene la lista de esquemas y tablas asociadas a una pool de conexiones a BD.
La lista de los archivos web de la aplicaciónaplicación, se ilustran en el diagrama siguiente.
...
geronimo-web.xml define la lista de dependencias que deben ser cargadas por el cargador de clases de la aplicación aplicación web.
...
web.xml define dos servlets que actuarán como la capa de control entre la capa de presentación y la capa de servicio.
...
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>dbtester</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<display-name>ContentTableServlet</display-name>
<servlet-name>ContentTableServlet</servlet-name>
<servlet-class>
org.apache.geronimo.ejemplos.dbtester.web.ContentTableServlet
</servlet-class>
</servlet>
<servlet>
<display-name>ListTablesServlet</display-name>
<servlet-name>ListTablesServlet</servlet-name>
<servlet-class>
org.apache.geronimo.ejemplos.dbtester.web.ListTablesServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ContentTableServlet</servlet-name>
<url-pattern>/listContent</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ListTablesServlet</servlet-name>
<url-pattern>/listTables</url-pattern>
</servlet-mapping>
</web-app>
La parte más importante en esta aplicación es el cómo tener acceso al kernel de Geronimo y asà obtener la lista de las pools de conexiones a bases de datos que se encuentren activas. Esta tarea es constrolada por la clase DBManagerBean.
...
private void init() {
Kernel kernel = KernelRegistry.getSingleKernel();
Set cfList = kernel.listGBeans(new AbstractNameQuery(
ConnectionFactorySource.class.getName()));
for (Iterator iterator = cfList.iterator(); iterator.hasNext();) {
AbstractName name = (AbstractName) iterator.next();
try {
Object rs = kernel.invoke(name, "$getResource",
new Object[] {}, new String[] {});
if (rs instanceof javax.sql.DataSource) {
DataSource ds = (DataSource) rs;
poolMap.put(name.getArtifact().getArtifactId(), ds);
}
} catch (GBeanNotFoundException e) {
e.printStackTrace();
} catch (NoSuchOperationException e) {
e.printStackTrace();
} catch (InternalKernelException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
...
web.xml define dos servlets que actuarán como la capa de control entre la capa de presentación y la capa de servicio.
...
La parte más importante en esta aplicación es el cómo tener acceso al kernel de Geronimo y así obtener la lista de las pools de conexiones a bases de datos que se encuentren activas. Esta tarea es constrolada por la clase DBManagerBean.
...
Para obtener la lista de esquemas y sus tablas, la aplicación usa metadatos de la base de datos proporcionados por un controlador JDBC. Metadata de ResultSet ha sido usada para obtener datos relacionados con registros y para desplegar el contenido de la base de datos. El siguiente código snippet ilustra el cómo solicita la aplicación a los esquemas y a sus tablas en un DataSource.
...
Para obtener la lista de esquemas y sus tablas, la aplicación usa metadatos de la base de datos proporcionados por un controlador JDBC. Metadata de ResultSet ha sido usada para obtener datos relacionados con registros y para desplegar el contenido de la base de datos. El siguiente código snippet ilustra el cómo solicita la aplicación a los esquemas y a sus tablas en un DataSource.
...
Herramientas usadas
Las herramientas usadas para el desarrollo y construcción construcción de la aplicación aplicación ejemplo dbtester, han sido:
Eclipse
El IDE Eclipse fue usado para el desarrollo de esta aplicación aplicación ejemplo. Es una herramienta de desarrollo muy poderosa, popular y open-source. También están También están disponibles plug-ins de integración integración con el servidor de aplicaciones Geronimo. Eclipse puede ser descargado de la siguiente URL:
http://www.eclipse.org
_NOTA: en la traducción traducción al españolespañol, se hizo la adaptación adaptación al IDE EclipseWTP (http://www.eclipse.org/webtools) junto con el plugin de integración integración con Geronimo: g-eclipse-plugin-1.1.x-deployable (http://geronimo.apache.org/devtools.html)_
Apache Maven 2
Maven es una herramienta popular de construcción construcción open-source para proyectos Java enterprise, diseñada diseñada para facilitar el tedioso trabajo del proceso de construcciónconstrucción. Maven usa una propuesta declarativa, donde la estructura del proyecto y su contenido se describen, en lugar de la propuesta basada-en-tareas que emplea, por ejemplo, Ant ó ó en archivos make tradicionales. Esto ayuda a consolidar estándares comúnesestándares comúnes-en-grupo y reduce el tiempo requerido para escribir y mantener scripts de construcciónconstrucción. La propuesta declarativa, basada-en-ciclo-de-vida que usa Maven 1 es, para muchos, un salto radical de las técnicas técnicas tradicionales de construcciónconstrucción, y Maven 2 da mayor énfasis énfasis en ese sentido. Maven 2 puede ser descargado de la siguiente URL:
http://maven.apache.org
_NOTA: En la traducción traducción al español español no se empleó empleó Maven2_
Regresar a la sección sección superior
Construyendo y Activando la
...
Aplicación Ejemplo
...
building
...
Descarga la aplicación aplicación dbtester de la siguiente liga:
dbtester_EXPORT
Después Después de extraer el archivo zip, el directorio dbtester será será creado. Como alternativa, puedes importar directamente al archivo zip en un nuevo proyecto Dynamic Web Proyect, llamándolo llamándolo dbtester, dentro de EclipseWTP; sólo faltarÃa sólo faltaría configurar a .project y .classpath en ese proyecto, lo cual se logra al dar de alta al servidor Geronimo en el proyecto.
...
Construcción
Al emplear la perspectiva J2EE dentro de EclipseWTP, basta con elegir exportar al proyecto como archivo WAR.
...
Activación
Activar dbtester es bastante simple, al emplear la Consola de Geronimo.
- Navega a la liga Deploy New (Activar Nuevo) del panel Console Navigation _(Navegación Navegación de Consola)_.
- Carga al archivo dbtester.war, ubicado en el directorio destino de tu exportación exportación a WAR, dentro al campo Archive.
- Presina al botón botón Install para activar la aplicación aplicación en el servidor.
Regresar a la sección sección superior
Probando la
...
Aplicación Ejemplo
...
testing
...
También También puedes aprovechar al plugin g-eclipse-plugin-1.1.x-deployable para agregar y probar al proyecto dentro de EclipseWTP, mediante la opción opción Add and Remove Projects..., la cual se encuentra disponible a partir del servidor Geronimo de tu workspace.
...
Con ello puedes probar la aplicación aplicación mediante un explorador web, en la dirección dirección http://localhost:8080/dbtester. Lo anterior cargará cargará la página Ãndice página índice de la aplicaciónaplicación, la cual actua como notificador de la lista de pools de bases de datos que se encuentren activas en Geronimo.
El usuario puede probar directamente a las pools enlistadas en esta aplicaciónaplicación. AdemásAdemás, la aplicación aplicación puedes ser usada para listar el contenido de las bases de datos.
Resumen
...
summary
...
Este artÃculo artículo te ha mostrado como tener acceso a recursos de Geronimo a partir de una aplicación aplicación J2EE. Con esto puedes construir, activar y probar una aplicación aplicación ejemplo para comprobar el acceso a algunos recursos. Esta aplicación aplicación ejemplo puede ser usada como un tester para pools de conexiones a bases de datos activas en Geronimo.