Proyecto SEAM+ADF en Eclipse

En este documento vamos a mostrar como crear un nuevo proyecto en eclipse que haga uso de las tecnologías Hibernate, Seam, JSF y ADF. Las versiones de software utilizadas para este ejemplo son:  

  • adf-faces-10_1_3_0_4.zip
  • JBoss Seam 1.1 1.1.1 GA

El Framework Jboss Seam lo podemos descargar directamente de la página oficial:
http://www.jboss.com/products/seam

En el paquete que nos descargaremos encontraremos las librerías necesarias, además de documentación y algunos ejemplos para que podamos ver el potencial del Framework. Entre las librerías que contiene, podemos encontrar las librerías de Hibernate y JSF, por tanto no será necesario que nos las bajemos nuevamente. Es conveniente estar al tanto de las actualizaciones que se hacen del Framework, pues corrigen muchos bugs y añaden nuevas funciones. Además si en algún momento exponemos alguna duda en los foros de Jboss, se nos exigirá estar utilizando la última versión disponible. Para descargar ADF debemos dirigirnos a la pagina Web de Oracle y descargarnos el paquete de librerías y ejemplos.

http://www.oracle.com/technology/products/jdev/ htdocs/partners/addins/exchange/jsf/index.html

En el paquete que actualmente hay para descargar (versión adf-faces-10_1_3_0_4.zip) hay un pequeño error. En la carpeta lib no aparece una librería que es necesaria para usar ADF. El nombre de esta librería es: adf-share.jar Abrimos Eclipse y procedemos a la creación de un nuevo proyecto. Añadimos a la carpeta lib las librerías necesarias.

Una vez que ya tenemos insertadas las librerías, lo único que nos quedaría por hacer es configurar el proyecto. Creamos un fichero vacio llamado seam.properties en el directorio raíz directorio src. En WEB-INF/ debemos crear 2 ficheros de configuración:

1. faces-config.xml: información referente al render-kit y el listener de Seam para los componentes.

<faces-config>
    <!-- Select one of the standard transaction models for the Seam application -->
    <lifecycle>
        <phase-listener>
        org.jboss.seam.jsf.SeamPhaseListener
        </phase-listener>
    </lifecycle>
    <application>
        <default-render-kit-id>oracle.adf.core</default-render-kit-id>
    </application>
</faces-config>

2. adf-faces-config.xml: información referente al skin que usaremos en los componentes ADF

<adf-faces-config xmlns="http://xmlns.oracle.com/adf/view/faces/config">
    <debug-output>true</debug-output>
        <!--client-validation-disabled>true</client-validation-disabled-->
        <accessibility-mode>
        #{prefs.proxy.accessibilityMode}
        </accessibility-mode>
        <!-- you can use EL to get the skin. This allows the skin to change between requests. -->
        <skin-family>#{prefs.proxy.skinFamily}</skin-family>
        <!--skin-family>oracle</skin-family--><!-- Uncomment any of these to enable them -->
        <!-- accessibility-mode>inaccessible</accessibility-mode -->
        <!-- A silly use of EL: English users get Simple Skin, others get Oracle Skin -->
       <!-- <skin-family>#{facesContext.viewRoot.locale.language=='en' ? 'simple' : 'oracle'}</skin-family -->
    <!-- oracle-help-servlet-url>
        http://helponline.oracle.com/jdeveloper/help/
        </oracle-help-servlet-url -->
</adf-faces-config>

Lo último que nos quedaría por hacer sería configurar en el fichero web.xml, los servlets de Seam, JSF y ADF para que mapeen nuestros ficheros JSP.

<web-app 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">
    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.jsp</param-value>
    </context-param>
    <context-param>
        <param-name>facelets.REFRESH_PERIOD</param-name>
        <param-value>2</param-value>
    </context-param>
    <context-param>
        <param-name>facelets.DEVELOPMENT</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.validateXml</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.verifyObjects</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>
            oracle.adf.view.faces.ALTERNATE_VIEW_HANDLER
        </param-name>
        <param-value>com.sun.facelets.FaceletViewHandler</param-value>
    </context-param>
    <!-- Seam -->
    <listener>
        <listener-class>
            org.jboss.seam.servlet.SeamListener
        </listener-class>
    </listener>
    <!-- MyFaces -->
    <listener>
        <listener-class>
            org.apache.myfaces.webapp.StartupServletContextListener
        </listener-class>
    </listener>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- resource loader servlet -->
    <servlet>
        <servlet-name>resources</servlet-name>
        <servlet-class>
            oracle.adf.view.faces.webapp.ResourceServlet
        </servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>resources</servlet-name>
        <url-pattern>/adf/*</url-pattern>
    </servlet-mapping>
    <!-- Faces Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.seam</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>adfFaces</filter-name>
        <filter-class>
            oracle.adf.view.faces.webapp.AdfFacesFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>adfFaces</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

Tras realizar todos estos pasos, ya estariamos preparados para comenzar nuestro nuevo proyecto web.

Tags:

Comments are closed.