Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Anchortoptop
El acceso a características específicas del servidor de aplicaciones y usarlas en tu aplicación J2EE le haría más poderosa que sólo tener acceso a sus características propias J2EE. Te proporciona la capacidad de escribir extensiones para tu servidor de aplicaciones.

...

Visión General de la Aplicación Anchor applicationapplication

Anchortop
top La apliación ejemplo en este artículo te 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 a la consola Geronimo, ya que la versión actual no contiene la funcionalidad de probar conexiones a pools de base de datos después de su activación.

...

La lista de los archivos web de la aplicació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 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.

...

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.

...


    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();
            }
        }
    }

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 de la aplicación ejemplo dbtester, han sido:

...

Construyendo y Activando la Aplicación Ejemplo Anchorbuildingbuilding

Descarga la aplicación dbtester de la siguiente liga:
dbtester_EXPORT

...

Probando la Aplicación Ejemplo Anchortestingtesting

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 Add and Remove Projects..., la cual se encuentra disponible a partir del servidor Geronimo de tu workspace.

...

El usuario puede probar directamente a las pools enlistadas en esta aplicación. Además, la aplicación puedes ser usada para listar el contenido de las bases de datos.

Resumen Anchorsummarysummary

Este artículo te ha mostrado como tener acceso a recursos de Geronimo a partir de una aplicación J2EE. Con esto puedes construir, activar y probar una aplicación ejemplo para comprobar el acceso a algunos recursos. Esta aplicación ejemplo puede ser usada como un tester para pools de conexiones a bases de datos activas en Geronimo.