ADF 11g en JBoss5 parte 2 – POJO Databindings

11

En el primer artículo de la serie se mostró como hacer el despliegue de una aplicación que no hacia uso del ADFm o como también se le conoce los databindings. En este artículo vamos a deplegar una aplicación que utiliza el data control de clases java dentro de JBoss 5GA.

Para llegar al resultado final he seguido un procedimiento diferente en el manejo de las librerías comparado con el propuesto en el primer articulo. Para llevar a cabo este procedimiento vamos a incluir dentro de nuestra aplicación un archivo de configuración que nos permita cargar las librerías de nuestro proyecto primero antes que las de JBoss para poder llevar a cabo un despliegue exitoso de la aplicación. Para esto me base en la documentación sobre JBoss classloader.

Como primera media vamos a crear un proyecto que utilize el POJO data control para presentar datos desde una clase java hacia la interfaz Web. A continuación les presento la estructura de mi proyecto, nótese que hay un archivo nuevo dentro de esta estructura llamado jboss-web.xml que es el que utlizamos para sobre-escribir la carga de las clases.

image

El archivo jboss-web.xml queda así:

  1: <?xml version="1.0" encoding="UTF-8"?>
  2:  <!DOCTYPE jboss-web PUBLIC
  3:     "-//JBoss//DTD Web Application 5.0//EN"
  4:     "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
  5: 
  6: <jboss-web>
  7:     <class-loading>
  8:         <loader-repository>
  9:             com.oracle.adfpojo:loader=adfm.jar
 10:             <loader-repository-config>java2ParentDelegation=true</loader-repository-config>
 11:         </loader-repository>
 12:     </class-loading>
 13: </jboss-web>
 14: 


La configuración del loader-repository apunta a cualquier librería que esté contenida dentro de nuestro archivo WAR. Alguien sabe el proposito de esta?



Finalmente vamos a incluir todas las librerias necesarias dentro del proyecto y del perfil de despliegue para poder llevar la aplicáción a JBoss. En las propiedades del proyecto asegurense de tener seleccionadas las siguientes librerías y paquetes de librerías.



image



Luego seleccione las siguientes librerías para que hagan parte de su perfil de despliegue o deployment profile



adf-controller-api.jar
adf-controller.jar
adf-controller-rt-common.jar
adf-dt-at-rt.jar
adfdt_common.jar
adf-faces-databinding-rt.jar
adflogginghandler.jar
adfm.jar
adfmweb.jar
adf-pageflow-dtrt.jar
adf-pageflow-fwk.jar
adf-pageflow-impl.jar
adf-pageflow-rc.jar
adf-richclient-api-11.jar
adf-richclient-impl-11.jar
adf-share-base.jar
adf-share-ca.jar
adf-share-support.jar
adf-transactions-dt.jar
cache.jar
commons-cli-1.0.jar
commons-el.jar
db-ca.jar
dms.jar
dvt-databindings.jar
dvt-facesbindings.jar
dvt-faces.jar
dvt-jclient.jar
dvt-utils.jar
groovy-all-1.5.4.jar
identitystore.jar
inspect4.jar
javatools-nodeps.jar
javax.xml.bind_2.1.3.jar
jaxb-impl_2.1.3.jar
jdev-cm.jar
jewt4.jar
jmxframework.jar
jmxspi.jar
jps-api.jar
jps-common.jar
jsf-api.jar
jsf-ri.jar
jsp-el-api.jar
jstl.jar
mdsrt.jar
oc4j-unsupported-api.jar
ojdbc5.jar
ojmisc.jar
oracle-el.jar
oracle.ucp_11.1.0.7.0.jar
share.jar
trinidad-api.jar
trinidad-impl.jar
weblogic-injection-provider.jar
xmlef.jar
xml.jar
xmlparserv2.jar


Luego ya puede desplegar su aplicación y ejecutarla



image


Eventos en Estados Unidos, Europa y America Latina

0

Aprovechando que estamos de anuncios, les cuento que el equipo de JDeveloper publicó nuevas fechas y lugares que incluyen varias ciudades de Europa y Estados Unidos para los OTN Developer Days.

Por qué creen ustedes que no se tienen programadas fechas en Latinoamerica?

Mi teoría personal es que el poder esté en los usuarios (clientes, partners, universidades, etc.) quienes deben de hacer suficiente ruido con los recursos locales, para que estos a su vez transmitan el deseo y la iniciativa de llevar a cabo estos eventos en nuestros paises.

Sin embargo nuestra región no esta totalmente abandonada ya que en paises como Chile se va a llevar a cabo la primera conferencia del CLOUG o grupo de usuarios de Oracle. Este evento va por muy buen camino y ya cuenta con varios personajes destacados del mundo Oracle a nivel regional y mundial. Cabe anotar que Perú tuvo el suyo el año pasado tambíen.

Mucha suerte a nuestros amigos de Chile y ojalá podamos ver próximamente eventos como los OTN Developer Days en nuestra región.

Comentarios, sugerencias, otros eventos que no he mencionado?


Oracle Open World Latin America 2009

0

La próxima semana me encontraré en Brazil  en el OOW Latin America. Allí estaré presentando 2 sesiones las cuales espero que asistan. Estoy muy contento de poder hacer parte de este evento ya que es mi primera vez como presentador en el OOW Latino.

Las presentaciones son:

Marzo 11

17:15 - 18:00 Auditorium 5: S298738 -  The Oracle Fusion Development Platform

Marzo 12

17:15 - 18:00 Auditorium 5: S305752 - RIA and Web 2.0 Development without Coding

El resto del tiempo me encontraré en el la zona de Demos en que corresponda a ADF/JDeveloper.

Alguien dijo Brazil?


Matriz the Migración de Woodstock a ADF Faces RC

0

Para todos aquellos desarrolladores que estén utilizando los componentes de Woodstock que proporcionaba Sun, quien en días recientes anunció que no iban a continuar siendo desarrollados. Los invitamos a que conozcan los componentes del Framework ADF llamados ADF Faces Rich Client components.

Hemos publicado en OTN una página que contiene la matriz de migración de los componentes así como también enlaces de gran ayuda que le van ayudar a comenzar a trabajar con los ADF RC.

La página se encuentra en el siguiente enlace.

http://www.oracle.com/technology/products/adf/adffaces/woodstock2adfMatix.html


TaskManager y TaskActionHandler no aparece en BPELConsole

0

Cuando los procesos TaskManager y TaskActionHandler no aparecen en la consola de BPEL (BPELConsole) una vez que se ha instalado el BPEL PM, los puedes tú publicar manualmente.

Ambos procesos ya empaquetados se encuentran en la carpeta $ORACLE_HOME\bpel\install\extensions.

En el caso de instalarlo en Oracle AS, basta con ponerlos abajo de la carpeta SOA_Oracle_Home/bpel/domains/default/deploy, pero si lo estás instalando sobre otro Application server, por ejemplo, Weblogic Server, no es tan rápido como ponerlo en dicho folder y reiniciar el server, sino que puedes hacer:

  • Descomprimir el jar
  • Estar seguro que las propiedades de compilación y publicación de ANT apuntan a tu instalación de WL Server (esto es parte de los post-installation steps de dicha instalación)
  • Compilar y Publicar con ANT.
  • Esto generará un jar nuevo ya con las propiedades correctas para generar el WSDL del proceso
  • Con esto puedes ir al BPELConsole y manualmente publicar ambos procesos


Cambio de password de oc4jadmin

0

Cuando se cambia el password de oc4jadmin en ocasiones se queda almacenado en caché provocando que a una consola (por ejemplo Enterprise Manager) esté utilizando y autenticando con el nuevo password, pero otra como el BPELConsole siga usando la contraseña pasada.

Para borar el caché se tiene que hacer lo siguiente:

Borrar el contenido del siguiente directorio:
(UNIX) ORACLE_HOME/j2ee/oc4jinstance /persistence/ascontrol/ascontrol/securestore/(Windows)ORACLE_HOME\j2ee\oc4jinstance\persistence\ascontrol\ascontrol\securestore/
Reiniciar el app server.


Aprendiendo Sobre Aplicaciones Empresariales Ricas

0

Hace algunos días se lanzó el sitio rea.oracle.com para que se puedan probar, aprender y tener contacto con las tecnologías usadas para crear las aplicaciones empresariales ricas. Este sitio ha sido construido con componentes ADF Faces. Aquellos que han trabajado o visto los DVT o Data Visualization Components apreciarán que el componente principal de navegación es un nuevo componente no incluído en la versión actual de producción llamado el Hierarchy Viewer o visor de jerarquías.

image

Este sitio combina información tanto de ADF como de WebCenter y tiene los accesos directos a demostraciones, tutoriales y documentación.


Desplegando Aplicaciones ADF 11g en JBoss 5 parte 1

12

A través de una serie de artículos comenzamos en el 2009 hablando de la portabilidad de distintos tipos de aplicaciones ADF 11g en JBoss5. En este articulo voy a mostrar como desplegar una aplicación que utilice ADF Faces Rich Components únicamente, lo cual quiere decir que en este caso no vamos a hacer uso del ADFm para conectar la interfaz con la lógica de negocios. Para este ejemplo vamos a hacer uso de los backing beans para conectarnos programáticamente con los distintos servicios de negocio.

image

Requerimientos:

Para este ejemplo vamos a necesitar tener instalado en nuestros´máquinas JBoss 5.0GA y JDeveloper 11g. Para este ejemplo no voy a utilizar información almacenada en base de datos.

Estableciendo la conexión con JBoss

En las IDE Connections que se encuentran en la mano derecha de JDeveloper, cree una nueva conexión a un servidor JBoss la cual apunte al directorio deploy que se encuentra dentro del directorio de JBoss, para mi ejemplo yo utilicé la instancia default para desplegar mi aplicación por lo que apunto al directorio deploy dentro de la instancia de default.

image

Creando la aplicación de Ejemplo

He creado una aplicación sencilla que haga uso de los componentes de ADF Faces que contiene la siguiente estructura:

image

Como se puede apreciar, he creado un par de paginas JSPX (login.jspx and hello.jspx) las cuales tienen distintos componentes ADF Faces al igual que una plantilla propia que cree. Inicialmente intenté utilizar la plantilla de tres columnas que viene por defecto con JDeveloper, pero tuve problemas al desplegar ya que esta plantilla viene ya dentro de JDeveloper y WLS por lo que si se quiere utilizar tiene que ser incluida dentro del proyecto directamente.

Así mismo, he definido un caso de navegación desde la página de login a la página hello. La acción esta predeterminada por el caso pero la acción como tal esta definida a través de un ActionListener que se implementa dentro del backing bean llamado ADFLoginBean.java 

Librerias Requeridas

Adicione las siguientes librerías al la carpeta Lib de la misma instancia del servidor de JBoss y re-inicie el servidor una vez las haya adicionado.

<JDevHome>\jdeveloper\modules\oracle.adf.share_11.1.1\adflogginghandler.jar

<JDevHome>\jdeveloper\modules\oracle.adf.share_11.1.1\adf-share-support.jar

<JDevHome>\jdeveloper\modules\oracle.adf.share.ca_11.1.1\adf-share-base.jar

<JDevHome>\jdeveloper\modules\oracle.adf.share.ca_11.1.1\adf-share-ca.jar

<JDevHome>\jdeveloper\modules\oracle.bali.share_11.1.1\share.jar

<JDevHome>\jdeveloper\modules\oracle.adf.model_11.1.1\adfm.jar

<JDevHome>\jdeveloper\modules\oracle.adf.model_11.1.1\adflibfilter.jar

<JDevHome>\jdeveloper\modules\oracle.dms_11.1.1\dms.jar
<JDevHome>\jdeveloper\modules\oracle.javatools_11.1.1\javatools-nodeps.jar

<JDevHome>\jdeveloper\modules\oracle.javacache_11.1.1\cache.jar

<JDevHome>\jdeveloper\modules\oracle.jmx_11.1.1\jmxframework.jar

<JDevHome>\jdeveloper\modules\oracle.jmx_11.1.1\jmxspi.jar

<JDevHome>\jdeveloper\modules\oracle.jps_11.1.1\jps-api.jar

<JDevHome>\jdeveloper\modules\oracle.mds_11.1.1\mdsrt.jar

<JDevHome>\jdeveloper\modules\oracle.xdk_11.1.1\xml.jar

<JDevHome>\jdeveloper\modules\oracle.xdk_11.1.1\xmlparserv2.jar

<JDevHome>\jdeveloper\modules\oracle.xmlef_11.1.1\xmlef.jar

Desplegando la aplicación

Vaya a las propiedades del proyecto y edite el deployment profile, seleccionando JBoss como la plataforma de despliegue. Haga click derecho sobre el proyecto y elija deploy To y el nombre de la conexión a JBoss que creo inicialmente.

Verifique en la consola de JBoss que no hayan errores de despliegue, luego ya puede acceder a su aplicación a través del navegador.

En siguientes entradas mostraré como hacer los mismo con aplicaciones que utilicen otras partes del framework.


Saludo de Año Nuevo

0

Comienza un nuevo año en el cual esperamos seguir activos y ofreciendo siempre material e información valiosa para nuestros lectores. El 2008 fue un año muy positivo en cuanto a las entradas del blog ya que tuvimos 7 artículos más que en el 2007, también la comunidad de bloggers Hispanos de Oracle se ha expandido y hemos echo contacto con varias comunidades de usuarios lo cual nos ayuda a seguir compartiendo el conocimiento y aprendiendo de las experiencias de otras personas.

Comenzamos el 2009 con un nuevo colaborador abordo y a la expectativa de los nuevos productos y lanzamientos que Oracle tiene para este año.

Los mejores deseos para este nuevo año y saludos a todos.


ADF 11g - Creando Plantillas para Páginas JSPX

6

Una de las nuevas características de ADF11g es la creación de plantillas de diseño las cuales son la base para todas o un conjunto de páginas que hacen parte de la aplicación. Este es el primero de dos artículos en los que veremos las características principales de las plantillas en JSF así como algunas los componentes de las mismas. El objetivo principal es el de crear una página jspx de nuestra aplicación que tenga el siguiente look and feel

ResultPage 

Una plantilla en JSF básicamente es un página JSPX la cual, a través de metadata define un diseño que van a manejar todas las páginas que se basen en esta plantilla. Las partes de una plantilla son: áreas editables o facets, atributos de página, áreas no editables o estáticas (logo, menu global, etc) y podría llegar a contener lógica de negocio que aplique para todas las páginas por ejemplo un menú para hacer login, logout.Wizard

Para crear una plantilla, creamos un Proyecto de Vista/Controlador basado en JSF, luego bajo la tecnología escogemos JSF Template 

El asistente es muy parecido al de una página JSPX sin embargo se puede notar que que ahora contamos con unos elementos nuevos que son los facets definitions así como también los atributos.

Podemos utilizar lFacetsos facets para definir las áreas en las cuales vamos a permitir adicionar contenido, esto quiere decir, cuando una página se crea con base en esta plantilla va a tener áreas editables  en donde se pude insertar cualquier tipo de componente, a la vez que van a existir partes de la aplicación que son no-editables las cuales hacen parte de la plantilla y no son definidas como facets. Para este ejemplo voy a definir 3 facets para mi plantilla un área para controles de navegación, un área principal y un área para Attributesinsertar menús.

Los atributos son elementos de nuestra  plantilla los cuales van a ser común para toda página, como un nuestro ejemplo vamos a definir un par de atributos el titulo de la página y el subtitulo de la misma, como se puede apreciar estos atributos pueden o no ser requeridos. En la segunda parte de este articulo voy a concentrarme en como utilizar la funcionalidad de asociar esta plantilla con el ADFm.

Una vez definimos loStructureNoFacetss componentes contamos con el editor visual de páginas y comenzamos por definir la distribución utilizando elementos de layout y así podemos definir una página base, en mi ejemplo la estructura inicial de mi plantilla queda como se ve en la parte izquierda.

La forma en que asociamos los facets y atributos a la plantilla es a través del componente común de la paleta de componentes el facet lo que hacemos es arrojar un facet como cualquier otro tipo de componente dentro del área que queremos hacer editable lo cual va a permitir especificar el facet que queremos en esta areaOpcionesFacet

 

Para definir los atributos lo que hacemos es utilizar un componente común el cual va a contener el atributo, para mi ejemplo el titulo lo voy a contener dentro de un af:outputText el cual lo arrojo en donde yo quiero que vaya el titulo, luego edito la propiedad Value con la siguiente EL #{attrs.Titulo} lo que hacemos aqui es hacer referencia de los atributos de JSP. La estructura luego de adicionar los facets y atributos queda de la siguiente forma

StructureFacets

Ahora cuando vamos a crear una nueva página podemos basarla en la plantilla que creamos

page 

y podemos ver que los atributos requeridos aparecen como errores hasta que no le demos el valor correspondiente

RequiredWarning

En la segunda parte vamos a ver como definir lógica de negocio que sea incluida en la plantilla y todas las páginas puedan utilizar.


Post navigation