Archive for 2009

Eventos que se generan en el Human Workflow. SOA Suite 11g

0

En la versión 10g de BPEL Process Manager se incorporó fuertemente el componente de Human Workflow en donde se puden ejecutar diferentes patrones de Aprobaciones, Revisiones, Cadenas de mando, etc.
Esa primera versión era poderosa pero carecía de varias funcionalidades, una de ellas era la capacidad de atrapar eventos que te permitieran saber qué pasó con la tarea, por ejemplo:
  1. Cuando alguien aprobó, rechazó, escaló
  2. Cuando la tarea se ha iniciado, terminado

  3. Cuando ha pasado cierto tiempo sin atención, etc.

En 11g se puede resolver muy fácilmente con los callbacks de la siguiente manera:

1. Lo primero que hay que hacer es crear un Composite con una Tarea Humana:





El composite quedará de la siguiente manera:





Para configurar los callbacks, da dos clicks al símbolo de la Tarea o bien al archivo .task en el explorador de archivos, ahí da click en el Menú de Eventos:



Aquí puedes ver que hay cinco eventos por default que se pueden asociar al uso de la tarea:


  • onAssigned

  • onUpdated

  • onCompleted

  • onStageCompleted

  • onSubTaskUpdated

Escoge el de onAssigned, así cada vez que a alguien se le asigne esta tarea se disparará un evento que el EDN de SOA Suite publicará para que alguien mas se subscriba a él.


Para que te puedes subscribir a un evento de EDN, arrastra un componente de Tipo Mediator y crealo apuntando a que te quieres subscribir a un evento:

Ahí podrás ubicar el evento que generamos en los pasos anteriores y después esa información rutearla a algún otro Servicio.


No Estaba Muerto….Andaba de Parranda

1

Una entrada rápida previa a mi nuevo articulo para disculparme con nuestros lectores por no haber publicado nada en casi 2 meses, imagino que algunos se abrían llegado a preguntar ¿si este blog había muerto o por qué desde octubre no se tenían noticias por el Oracle Radio?

En mi caso particular tuve un mes de Noviembre bastante agitado, que incluyeron la salida a producción de JDeveloper 11.1.1.2.0 o “Patch Set 1”,  eventos en Estados Unidos, un pequeño tour por Sur América donde tuve el placer de participar de los eventos de grupos de usuarios Oracle de Perú y Chile, lo cual empato perfecto con las festividades del día de acción de gracias en Estados Unidos.

Sin embargo como es usual en nuestra industria, el mes tuvo mucha actividad por el lado de Oracle y Fusion Middleware y esto nos da mucho material e ideas de artículos que espero ahora que se llega el final de año y donde en teoría las cosas deberían volver a el ritmo normal, podamos publicarlas con la frecuencia habitual.

Los invito a seguir conectados y saben que hoy más que antes seguimos “vivos y pateando fuerte”. 


SOA Manifesto??

0

Mi buen amigo René Figueroa, uno de los Top SOA Architects que tiene Oracle en Latinoamérica me sugirió entrar a este sitio http://soa-manifesto.org/ , hace sólo unas horas.

A todos aquellos que les toca estar frente a los clientes sugiriendo Arquitecturas Orientadas a Servicios este manifesto les debe representar algo importante.

Yo ya lo firmé y espero que ustedes también lo hagan.

Ahora igualmente pueden seguirme en twitter.com/brimful_ofasha


Actualizaciones en vivo del OOW y Mi Horario en Demos

0

Por esta semana los lectores de nuestro blog van a poder tener actualizaciones en vivo de las distintas noticias y pormenores que se den durante el Oracle Open World 09 a través canal de twitter de la Comunidad Hispana Oracle @cohispana. A partir de hoy hasta el próximo Jueves los visitantes al blog tendrán una columna a mano izquierda con las actualizaciones en vivo que se estén dando al canal.

Por otro lado al igual que Rolando aquí les dejo mi horario de los demo grounds que se encuentran ubicados en Moscone West:

Lunes Oct 12:

4.30 p.m – 6.30 p.m. En el booth de JDeveloper

Martes Oct 13:

2.30 p.m – 4.30 p.m. En el booth de ADF Faces

Miercoles Oct 14:

9.15 a.m – 11.15 a.m. En el booth de ADF Faces.

Y algo que les había quedado debiendo este año fue la imagen previa de los preparativos del OOW. Esta es en la casa matriz de Oracle en el auditorio donde los empleados estábamos recogiendo nuestras credenciales de acceso al evento…. miren el tamaño de las personas con relación a la pancarta.



La Guía de ADF para el Oracle Open World 2009

0

Tres semanas nos alejan del Oracle Open World uno de los eventos más grandes a nivel mundial en la industria de tecnología; una semana completa llena de presentaciones, laboratorios, demostraciones y anuncios sobre los avances y el futuro de los productos de Oracle.

Por segundo año consecutivo seré unos de los presentadores del equipo de JDeveloper y ADF para lo cual estoy poniendo el todo por el todo. Para todos aquellos que se encuentren asistiendo a este evento y sean seguidores del blog les dejo en este post el horario de mis presentaciones y mis actividades a lo largo de la semana así como también les dejaré una guía completa de todas las actividades que vamos a tener tanto en el Oracle Develop como en el Open World en torno a ADF.

Las sesiones que estaré liderando son:

Domingo 11 de Octubre

S309420 – Hands-On-Lab: Developing Rich Internet Applications and Rich Enterprise Applications with Oracle ADF Faces

Lunes 12 de Octubre

S312744 – Hands-On-Lab: Developing Ajax-Based User Interfaces with JSF

Martes 13 de Octubre

S309420 – Hands-On-Lab: Developing Rich Internet Applications and Rich Enterprise Applications with Oracle ADF Faces

S307624 – Developing Microsoft Office Front Ends for Enterprise Java Applications

Miércoles 14 de Octubre

ADF Unconference Day – Integrating ADF with SOA (Estoy mirando si le doy otro enfoque a esta presentación)

Aparte de estas sesiones me encontraré también en la zona de los DemoGrounds en el Pod de JDeveloper o en el de ADF Faces para que podamos conversar con más calma. 

Este año tenemos muchas más sesiones formales (agendadas) y también hemos querido tomar la iniciativa de crear un día dedicado a ADF dentro del evento que corre en paralelo llamado el Unconference donde cualquier persona que participe del OOW puede hacer una presentación de manera libre sobre cualquier tema que le parezca interesante.

En el este enlace van a poder tener el listado completo de sesiones de ADF durante el evento.

Así que nos vemos en San Francisco!!!!


Un diagrama útil...

0

Este es un diagrama útil que he creado que les puede ayudar para explicar los conceptos de SOA y BPM.

Igualmente se puede hacer énfasis en las diferentes piezas de una arquitectura como esta:

  • Tecnología de Orquestación y Exposición de Servicios ( Service Bus y BPEL )
  • Tecnología para establecer conectividad con diversos aplications (Adaptadores)
  • Seguridad de Servicios
  • Capa de Análisis y Gestión de Procesos
  • Capa de Monitoreo en Tiempo Real
  • Capa de Gobernabilidad de Procesos y Servicios
  • Gestión y Desarrollo Centralizado
  • Capa de exposición de Aplicaciones Compuestas. Portales y Enterprise 2.0



En términos de Productos de Oracle, estamos hablando de :
  • Oracle BPM
  • Oracle BPA Suite
  • Oracle SOA Suite
  • Oracle Service Bus
  • Oracle Enterprise Repository
  • Oracle Webcenter

Se sugiere hacer la descarga de SOA Suite 11g, pues es una pieza clave para la composición de Servicios. Esto es clave para una arquitectura SOA , pues en verdad te da la posibilidad de componer y gestionar servicios compuestos, no piezas aisladas.

Se sugiere también hacer la publicación del Fusion Order Demo 11g. La pueden encontrar aquí.


Pequeña Guía para trabajar con ADF Swing en JDeveloper 11g

2

Hace pocos días alguien me pregunto como empaquetar y ejecutar aplicaciones creadas con ADF Swing en JDeveloper 11g. Después de un intento fallido a las carreras, me puse en la tarea de probar este modulo de ADF del cual no se escucha mucho normalmente. Este es un pequeño tutorial que muestra como empaquetar y ejecutar una aplicación sencilla creada con ADF Swing.

Al tener ya un tutorial en ingles para crear aplicaciones en swing, no voy a especificar como crear la aplicación por lo cual nuestro punto de partida es una aplicación lista, con algo de lógica y que corre dentro de JDeveloper11g.

image

Ahora para empaquetar esta aplicación vamos a crear un Deployment Profile. Click derecho en el proyecto –>Project Properties –>Deployment y damos New. El tipo de paquete para una aplicación Swing es jar image No hay mucho mas que dar el nombre al deployment que va a ser el nombre de nuestro paquete. Luego en las propiedades lo único que nos tenemos que asegurar es que en las JAR Options este seleccionado Include Manifiest File (META-INF/MANIFEST.MF) y luego en el Main class seleccionamos la clase de nuestra aplicación que contiene el main. Para este ejemplo basado en el tutorial en ingles el valor es client.Application1

Luego salvamos toda la información y damos click derecho sobre el proyecto –> Deploy –>MyApp–>To jar file.

Y finalmente nos vamos en una ventana de comandos y damos java –jar miAplicación.jar

image


JDeveloper 10.1.3.5 liberado

0

El día de ayer fue liberada la versión 10.1.3.5 de JDeveloper la cual es una versión de mantenimiento que resuelve bugs abiertos y beneficia a todos aquellos que se encuentran trabajando aplicaciones en FMW 10g. La lista de bugs corregidos se encuentra en el este enlace y el software lo pueden descargar directamente desde OTN.


Filtrando Colecciones de Datos con ViewCriterias Utilizando Programación

1

Desde las primeras versiones de ADF 11g les había hablado acerca de uno de los componentes de los ViewObjects llamado ViewCriteria a través de los cuales podemos definir sentencias “FindBy” o en otras palabras sentencias para filtrar los datos de una colección con base en uno o más criterios.

En este articulo vamos a ver como trabajar con ViewCriterias utilizando programación para manualmente filtrar los resultados de una colección de datos, producto de una pregunta que se dio en el foro de OTN.

Nuestro punto de partida es una aplicación que tiene sus servicios de negocio basados en Business Components en donde tenemos un VO de Empleados el cual tiene 2 ViewCriterias definidas EmployeeViewCriteria1 y EmployeeViewCriteria2 –la primera filtra los salarios superiores a 10000 y la segunda filtra los empleados que tengan comisión por Ventas asignada (no null). Cabe aclarar que el comportamiento por defecto de las ViewCriterias es que al ser aplicadas van a sobre escribir cualquier otra ViewCriteria que se haya ejecutado previamente, sin embargo también se pueden configurar de tal forma que la ejecución de las mismas sea acumulable.

Lo primero que vamos a hacer es crear algunos métodos propios sobre nuestro VOImpl a través de los cuales vamos a invocar el API de los ViewObjects y de esta forma poder aplicar y remover VCs

    //En la clase EmployeesVOImpl.java
    public void applyVC(String name){
        setApplyViewCriteriaName(name,true);
        executeQuery();
    }
    public void removeVC(String name){
        removeApplyViewCriteriaName(name);
        executeQuery();
    }


Exponemos estos métodos para que hagan parte de las operaciones que se pueden invocar desde la interfaz. Luego necesitamos crear la lógica en la vista para invocar estos métodos y pasar los parámetros adecuados.



Para este ejemplo hemos creado una página sencilla que contiene 4 links – 2 para aplicar las VCs y otros 2 para removerlas.



image



Dentro de cada uno de los links hago uso de la operación setPropertyListener la cual me sirve para asignar el valor de la VC que quiero invocar a una variable dentro de un managed bean. El código de mi página queda entonces de la siguiente forma:



<af:commandLink text="applyVC1" id="cl1"
                actionListener="#{HRTestBean.applyVC_action}">
  <af:setPropertyListener from="EmployeesViewCriteria1"
                          to="#{HRTestBean.criteriaName}"
                          type="action"/>
</af:commandLink>
<af:commandLink text="applyVC2" id="cl1"
                actionListener="#{HRTestBean.applyVC_action}">
  <af:setPropertyListener from="EmployeesViewCriteria2"
                          to="#{HRTestBean.criteriaName}"
                          type="action"/>
</af:commandLink>


Dentro de mi managed bean todo lo que tengo que hacer es invocar el método respectivo por medio del OperationBindingContainer.



public class HRTestBean {
  
  public String criteriaName;
  
  public HRTestBean() {
  }
    public void setCriteriaName(String criteriaName) {
        this.criteriaName = criteriaName;
    }
    public String getCriteriaName() {
        return criteriaName;
    }
    public void applyVC_action(ActionEvent actionEvent) {
       executeCriteria("applyVC");
    }
    public void removeVC_action(ActionEvent actionEvent) {
        executeCriteria("removeVC");
    }
    
    public void executeCriteria(String name){
        String cName = getCriteriaName();
        BindingContext bctx = BindingContext.getCurrent();
        DCBindingContainer bc = (DCBindingContainer)bctx.getCurrentBindingsEntry();
        OperationBinding opb = (OperationBinding)bc.getOperationBinding(name);
        opb.getParamsMap().put("name",cName);
        opb.execute(); 
    }
}


Y finalmente asigno un partialTrigger a mi tabla para que se refresque cada vez que doy click a uno de los links.


SOA Suite 11g

0

Desde el 1ero de Julio de 2009 está disponible en otn.oracle.com una nueva versión de SOA Suite. Tiene mejoras sustanciales relacionadas a:

  1. Un monitoreo unificado utilizando Oracle Fusion Middleware Control 11g
  2. Un modelador de Aplicaciones Compuestas basado en SCA
  3. Nueva interface para la definición de reglas de negocio. Todo desde Oracle JDeveloper, soportando Tablas de decisión y algoritmos de validación de reglas
  4. Seguridad unificada de Web Services
  5. Soporte a Human Taks utilizando ADF 11g
  6. Business Activity Monitoring sobre Weblogic y soportando múltiples Sistemas Operativos
  7. Framework de Eventos que evita al desarrollador tener que lidear con Tópicos y Colas. Este framework es muy poderoso para interactuar con eventos que se generan en BDs Oracle ,así como en ADF
  8. También se introduce el concepto de Mediator que te permite: Realizar enrutamiento de mensajes en base a contenido, filtrar mensajes, enriquecerlos, así como manejar excepciones.
  9. Se agregaron conectores para: Sockets, BAM y para llamadas a Java (Spring)
  10. Se mejoraron las capacidades de transformación de mensajes, continuando con el soporte de XSLT

Estas y mas mejoras las pueden encontar en: http://www.oracle.com/technology/products/soa/soasuite/index.html

Otro punto importante es la capacidad de hacer update de versiones previas (10.1.3.X) de una manera simple. Por ejemplo: proyectos construidos con Oracle BPEL PM basta con que se abran con el JDeveloper 11g y se publiquen al nuevo BPEL Server y se habrá hecho la migración. En la documentación se ha incluido toda una guía de cómo hacerlo:

http://download.oracle.com/docs/cd/E12839_01/upgrade.1111/e10127/toc.htm

Oracle SOA Suite 11g contiene todo lo necesario para que puedas crear servicios, protegerlos, orquestarlos, así como monitorearlos. Además de sus capacidades mejoradas de Business Rules; todo esto la hace aún mas poderosa de lo que ya era. Si a esto le agregamos el soprote a SCA, simplemente no hay nada similar que se pueda encontrar en el mercado.


Dominios de Oracle BPEL 10.1.3.x con letras Mayúsculas?

1

Crear Dominios en Oracle BPEL PM con letras mayúsculas no está soportado.
Si están teniendo problemas al entrar a la consola de BPEL (http://maquina:puerto/BPELConsole) y les genera un problema de redireccionamiento es porque alguno de sus dominios está creado con una palabra que tenga mayúsculas.

El síntoma es querer entrar a la consola y que ésta al hacer login tenga un problema de redirección y no pueda darte acceso.

Otra situación que sucede es que desde el BPELAdmin sí te dejará entrar, pues directamente estarás seleccionándolo y hará el redirect; pero en realidad el problema está en que directo del BPELConsole nunca conseguirás accederlo.


Presentando en el OTN Developers Days Bolivia 11/08-13/08

0

Como parte de la conformación de la comunidad de desarrolladores en el sur del continente se van a llevar a cabo 2 OTN Developers Days en 11 de Agosto en La Paz y el 13 de Agosto en Santa Cruz de la Sierra en los cuales tendré el placer de presentar!!.

Durante estos eventos vamos a dar un vistazo general de las últimas herramientas de desarrollo que ofrece Oracle y la plataforma de desarrollo para Oracle Fusion. El evento esta dirigido a usuarios que vienen del mundo Forms 4GL, People Tools, Oracle E-business-Suite, JDEdwards y por supuesto Java. Los asistentes podrán apreciar demostraciones en vivo de los productos, a la vez que podrán disfrutar de un evento abierto, relajado, entretenido y de mucho aprendizaje... Como nos gusta a los desarrolladores!!!

Para todos los usuarios de JDeveloper o aquellos que quieren saber como empezar a trabajar con ADF y JDeveloper que viven en Bolivia, este es un evento que no se pueden perder. Los asistentes van a poder apreciar demostraciones en vivo de los productos y tener contacto de primera mano con el recién liberado JDeveloper/ADF 11g Release1.

Pueden registrarse en el evento de la Paz a través del este enlace y para el evento en Santa Cruz de la Sierra en este enlace.

Nos vemos en Bolivia!!!!


Trabajando con el Placeholder DataControl en ADF11g

0

Los DataControls son la implementación que hace el framework ADF del estándar JSR-227, a través de los cuales creamos la capa llamada ADF Model (ADFm) que básicamente nos permite exponer los servicios de negocio a la capa de interfaz de manera homogénea sin importar la tecnología en que estos servicios fueron creados.

El Placeholder datacontrol fue introducido a partir de ADF11g y su función principal es la de simular una capa de servicios de negocio basada en Business Components de forma rápida e incluyendo todas las operaciones y estructuras con que normalmente se cuentan. Los diseñadores de interfaces pueden sacar provechos de este componente para crear las páginas y taskflows sin necesidad de tener datos reales viniendo de la capa de servicios. En este articulo voy a presentar como hacer uso de esta funcionalidad que nos presenta ADF.

Creando el PlaceHolder:

Lo primero que hacemos en este caso es crear una Fusion Web Application luego todo lo que tenemos que hacer es en el proyecto de servicios de negocio vamos a la categoría Data Controls y escogemos Placeholder DC.ProjectStructure

Con esto estamos generando un DataControl vacio, como si fuera un AppcreateSampleVOlication Module más de nuestra aplicación, ahora vamos a crear los llamados DataTypes o estructuras de datos. Con ellos vamos a simular nuestros ViewObjects, aquí vamos a crear los atributos, definir listas de valores, llaves primarias, Maestros Detalles, UI Hints, etc. Click derecho sobre el Placeholder DC-> Create Placeholder Data Type.

image

Por ejemplo para crear un atributo como una Lista de valores, tenemos que tener un DataType base para basar nuestra lista.Para crear un una relación Maestro Detalle debemos seleccionar la propiedad searchable sobre el atributo y luego creamos un nuevo Data Type partiendo de la estructura que va a ser el padre.

Finalmente procedemos a insertar datos estáticos dentro de las estructuras de datos. Esta información puede ser insertada de forma manual o también a través de un archivos separado por comas CSV. Todos los datos van a quedar almacenados dentro del ResourceBundle en el Modelo.

Una vez creamos todas las estructuras podemos crear cualquier tipo de interfaces con ADF Faces, así mismo podemos simular las operaciones de los BCs.

Al final la estructura que cree contiene maestro-detalle, lista de valores y operaciones.

image

Al utilizarla dentro de las páginas obtengo todas las opciones de acuerdo al tipo de datos y estructura jerárquica que creé.

imageAhora a sacarle provecho a esta utilidad.


Nuevas Carácteristicas en JDeveloper11g R1

0

FMW11g R1 viene con una nueva versión de JDeveloper 11g que se conoce internamente como Bulldog. Esta versión contiene un gran número de nuevas características en todas las áreas funcionales. Así mismo con esta versión se puede desarrollar para todo lo que es SOA Suite y WebCenter que también hacen parte de FMW11g.

En este articulo presentaré algunas de las principales características de esta nueva versión asociadas a JDeveloper y ADF:

ADF Desktop Integration:

image

Un componente de ADF que nos va a permitir extender aplicaciones ADF 11g nuevas y existentes, ofreciendo una integración con hojas de cálculo en excel, las cuales se pueden utilizar para la administración de información que provenga de servicios de negocio expuestos con el ADF model.

Para más información pueden ver un video de introducción aquí y también les dejo el enlace para el tutorial de introducción

Oracle Metadata Services (MDS):

Con MDS se adiciona el tema de personalización de interfaces - los componentes visuales y funcionales de un documento base pueden ser modificados sin necesidad de crear nuevas versiones de un mismo documento.

Organizaciones las cuales requieren distintas versiones de una misma interfaz (e.j. departamentos) o personalizar aplicativos de acuerdo al cliente van a tener grandes beneficios utilizando esta nueva característica de ADF 11g.

Video de introducción y tutorial de ejemplo

Team Productivity Center:

Uno los componentes más grandes de este release. Adiciona funcionalidad para manejar el ciclo de vida de una aplicación a JDeveloper. A través de TPC se pueden utilizar repositorios de Bugs como Jira o MS Project y se puede hacer seguimiento en equipo a los desarrollos. Complementa la oferta de la funcionalidad ya conocida de soporte a controladores de versiones. Es una extensión que aporta bastantes beneficios a los equipos de desarrollo.

La página principal en OTN esta aquí, también tiene un demo de introducción y pueden ir al blog de Susan Duncan para un resumen en ingles

 

Active Data Services:

Funcionalidad del framework para soportar eventos tipo push en las interfaces ADF faces utilizando la plataforma Comet. De tal forma que las interfaces se pueden refrescar en el momento que los eventos del lado del servidor ocurran.

Otras grandes áreas en la que vamos a profundizar más es en las extensiones para WebCenter11g y SOA Suite 11g. Espero desde ya empiecen a trabajar con este release y que sigamos compartiendo conocimiento por este medio. Para la lista completa de las nuevas características en este release pueden ir a OTN en el siguiente enlace.


Oracle Fusion Middleware 11g está en Producción

0

Julio 1ero marca el nacimiento oficial de la más reciente generación de aplicativos de  Middleware de Oracle – FMW11g. Los productos que a partir del día de hoy se encuentran en producción son el resultado de un periodo de adaptación y continua evolución que ha caracterizado a las soluciones de Middleware de Oracle en los últimos años.

FMW 11g cuenta con productos y soluciones en categorias como Herramientas de Desarrollo,  SOA, Interacción con Usuario (Portales y Web2.0), Identity Management, Enterprise Management, Seguridad, Inteligencia de Negocios y Gestión de Contenido.

A partir de hoy pueden hacer uso de las herramientas usadas para la construcción de las Aplicaciones Fusion. Esperamos poder seguir escribiendo sobre esta nuevo release para sacarle todo el provecho y continuar generando un conocimiendo compartido.

image

Por el lado de herramientas de desarrollo estaré explorando la nueva versión de JDeveloper 11g, conocida internamente con el nombre Bulldog en los próximos articulos.



EL - Expression Language en ADF Faces

0

EL es un lenguaje de scripting que hace parte de la especificación de JSF con el objetivo de facilitar simplificar el acceso a los componentes de una página sin necesidad de utilizar código Java. Siendo ADF Faces un framework basdo en JSF vamos a ver en este articulo como podemos utilizar EL dentro de nuestras aplicaciones basadas en JSF.

Al ser EL un lenguaje tipo script, no requiere de compilación por lo que toda expresión es evaluada en runtime. El desarrollador puede interactuar con los atributos, metodos y propiedades de los ADF Faces Rich Components a través de expresiones. Así mismo en ADF todos los mapeos (bindigs) que se hacen al ADFm son implementados con EL.

Veamos algunos ejemplos de expresiones:

Si tenemos un inputText podemos invocar el setter de una variable apellido que esta dentro de un managed bean llamado cliente a través de EL

  1: <af:inputText id="apellido“ required="true" value="#{cliente.apellido}"/>


Ahora si queremos obtener el apellido y asignarlo a un outputText invocamos el getter



1: <af:outputText id="apellido“ value="#{cliente.apellido}"/>



Por otro lado podríamos realizar operaciones aritméticas y/o evaluar condiciones para determinar cierto comportamiento:



  1: <af:outputText value="#{backing_client.salario > 0? backing_client.salario*.12:0}"/>


JDeveloper cuenta con un Expression Builder a través del cual podemos armar expresiones de forma declarativa. El expression builder se lanza en el momento que queramos definir alguna propiedad de un componente diferente de los valores por defecto tales como true o false. Dentro del editor de codigo podemos armar expresiones con el asistente digitando #{ al definir el valor de una propiedad de un componente.



Veamos algunos ejemplos prácticos de expresiones que nos pueden ser útiles cuando trabajemos con los ADF Faces componentes:



<!--acceder al valor de los bindings de la pagina-->
<af:inputText id="text1" value="#{bindings.nombre.inputValue}/>
 
<!--Renderizar un componente basado en una codicion-->
<af:inputText id="text1" value="#{bindings.nombre.inputValue} rendered="#{binding.salario.inputValue > 0"/>
<!--variables que se definan en los scopes-->
<af:inputText id="text1" value="#{pageFlowScope.nombre}/>
<af:inputText id="text1" value="#{sessionScope.nombre}/>
<!--Este expresion evalua igual que las anteriores-->
<af:outputText value="#{requestScope['nombre']}"/>
  
<!--Acceder al contexto de seguridad via EL-->
<af:inputText id="text1" value="#{bindings.nombre.inputValue} rendered="#{securityContext.userInRole['fod-admin']}"/>
<!--Realizar alguna operacion aritmetica basado en una condicion-->
<af:outputText value="#{backing_client.salario > 0? backing_client.salario*.12:0}"/>
<!--Acceder al mapa de propiedades de un atributo del ADFm-->
#{bindings.empTable.labels}


Una de las carácteristicas especiales que descubrí recientemente es que a través de las expresiones se van a acceder a los métodos que estén definidos para el objecto. Un ejemplo de ello es el siguiente:



Quiero hacer una operación aritmética con 2 valores, uno viene desde la interfaz de usuario final digamos a traves de una variable en la sesión. El segundo valor viene de un atributo numérico que tengo en un ViewObject. El problema es que cuando hago la operación el numero que viene del ViewObject es de tipo oracle.jbo.domain.Number por lo cual si el valor que viene de la interfaz es de tipo java.lang.int o similar. La expresion no va a evaluar y va a causar un error de casting.



Ahora como a través de EL yo puedo acceder a los metodos de objecto Number para que mi expresion evalue correctamente hago



#{sessionScope.valor1 + bindings.valor2.inputValue.value}


Lo cual invoca el metodo getValue del objeto y este retorna un java.lang.double.



Para mayor información sobre EL pueden ir a los siguientes enlaces



1- API de Java para FMW: http://download.oracle.com/docs/cd/E12839_01/apirefs.1111/e10758/toc.htm



2- Unified Expression Language: http://docs.huihoo.com/java/ee/javaeetutorial5/doc/JSPIntro7.html#wp101877



Si alguno tiene más urls que quisiera compartir, lo puede hacer a través de los comentarios.


Error al hacer upgrade de SOA Suite 10.1.3.1 a 10.1.3.3 ó 10.1.3.4

1

Cuando se aplica la actualización de 10.1.3.1 a 10.1.3.4 ó bien de 10.1.3.3 a 10.1.3.4 es común encontrarse con el siguiente error al querer entrar al BPELConsole:

Oracle BPEL Process Manager Full CycleAn unexpected error has occurred while executing your request. This is most likely related to a defect in the Oracle BPEL Process Manager product. We apologize you can post the error to the OTN forum and we will get back to you as soon as possible.Attachments:Build Information:***************************************************************************** Oracle BPEL Server version 10.1.3.3.0Build: 0 Build time: Fri Jun 15 06:05:31 PDT 2007 Build type: release Source tag: PCBPEL_10.1.3.3.0_GENERIC_070615.0525 Exception Message:[java.lang.NoSuchMethodException] com.collaxa.cube.ejb.impl.FinderBean.tryLookupInstanceByReferenceId(java.lang.String, com.oracle.bpel.client.auth.DomainAuth) Exception Trace:java.lang.NoSuchMethodException: com.collaxa.cube.ejb.impl.FinderBean.tryLookupInstanceByReferenceId(java.lang.String, com.oracle.bpel.client.auth.DomainAuth) at java.lang.Class.getMethod(Class.java:1581) at com.evermind.server.ejb.interceptor.MethodStateFactory.createMethodState(MethodStateFactory.java:112) at com.evermind.server.ejb.deployment.ExposableBeanDescriptor.createMethodStates(ExposableBeanDescriptor.java:657) at com.evermind.server.ejb.deployment.ExposableBeanDescriptor.getRemoteComponentMethodStates(ExposableBeanDescriptor.java:723) at com.evermind.server.ejb.deployment.ExposableBeanDescriptor.getMethodState(ExposableBeanDescriptor.java:599) at com.evermind.server.ejb.AbstractEJBObject.OC4J_getMethodState(AbstractEJBObject.java:385) at FinderBean_RemoteProxy_4bin6i8.lookupDomain(Unknown Source) at com.oracle.bpel.client.Locator.lookupDomain(Locator.java:228) at _index._jspService(_index.java:78) at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65) at oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:396) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:410) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:623) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370) at com.evermind.server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:259) at com.evermind.server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:51) at com.evermind.server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193) at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283) at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:198) at com.collaxa.cube.fe.DomainFilter.doFilter(DomainFilter.java:131) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15) at oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:396) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:410) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370) at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:302) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:190) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at java.lang.Thread.run(Thread.java:595)

Para resolverlo hay que realizar lo siguiente:

  1. Todo consiste en remplazar el ejb_ob_engine.jar con una copia que se encuentra en otra carpeta. Lo siguiente asume que la SOA Suite (BPEL) está ejecutándose en el container OC4J_SOA.
  2. Primero hay que parar el container con: opmnctl stopproc process-type=OC4J_SOA
  3. Cambiarse a la carpeta $ORACLE_HOME/j2ee/OC4J_SOA/applications/orabpel
  4. Borrar el archivo: ejb_ob_engine.jar
  5. Copiar el archivo $ORACLE_HOME/bpel/system/j2ee/ejb/ejb_ob_engine_oc4j.jar a la carpeta $ORACLE_HOME/j2ee/OC4J_SOA/applications/orabpel
  6. Renombrarlo de ejb_ob_engine_oc4j.jar a ejb_ob_engine.jar
  7. Iniciar la SOA SUITE: opmnctl startproc process-type=OC4J_SOA

Con esto al entrar al BPELConsole ya no se tendrá el problema anteriormente mencionado.



Proxima Semana en el Chile OUG y Developers Day en Argentina

0

El próximo Lúnes y Martes estaré participando en el primer Chile OUG que se llevará a cabo en Santiago. El evento cuenta con la participación de varios de los directores ACE de Oracle para América Latina como Plinio Arbizu de Perú, Mauricio Naranjo de Colombia y Francisco Muñoz Alvarez de Chile quien hace parte del comite organizador. Así mismo habran distintos invitados internacionales Tim Hall y Dennis Remmer.

Desde ya este evento promete ser el más grande de su tipo realizado en la región. Por mi lado estaré presentando 2 charlas sobre Fusion Development y Desarrollo de Aplicaciones Empresariales Ricas. Así mismo estaremos liderando un Masterclass sobre ADF durante el evento.

Terminado Chile estaré desplazandome a Argentina donde participaré de un evento para Desarrolladores en la ciudad de Buenos Aires presentando la plataforma de desarrollo para Oracle Fusion. Una semana bastante agitada la que se viene.

Nos vemos en Chile y Argentina!!



Excelente Podcast Sobre ADF/JDeveloper y JDeveloperLA

0

El portal JavaHispano ha realizado un Podcast con la participación de Pedro Gallardo quien es responsable del área de Middleware en BBR Ingineria en España. En el Podcast Pedro nos relata la historía del sitio JDeveloperLA, la fuerza que ha adquirido este portal dentro de la comunidad hispana en torno a JDeveloper y también nos habla sobre muchas de las caráctecistas de ADF y su importancia estratégica dentro del mundo Oracle así como dentro del mundo de los frameworks JavaEE.

Material recomendado que se puede ir escuchando mientras van camino a su casa, o en la oficina mientras se responden emails... ;-)  El Podcast lo pueden encontrar aqui.


Llamando al API del Worklist de Oracle BPEL PM sobre Weblogic Server 9.2

0

Es normal tener la necesidad de construir ya sea una Worklist customizada para Oracle BPEL PM, o bien alguna aplicación cliente que necesite consultar datos de la Worklist, por ejemplo:
* Tareas asignadas a un usuario en específico
* Poder aprobar, rechazar una tarea desde afuera de la Worklist
* Cantidad de Tareas que tengan algún Título en específico
* Generar una Tarea de manera remota,
* etc

Bien, si todo está montado sobre Oracle AS, no hay necesidad de hacer ninguna modificación a las clases que ocupas para construir una aplicación cliente de la Worklist (aquí mas datos ).

El tema está en ocupar por ejemplo:

* Una aplicación construida con Webcenter Framework, sobre Oracle AS
* Oracle BPEL PM Worklist sobre WLS 9.2

La aplicación se puede construir tal como se especifica en el link antes mencionado, de ahí hay 2 alternativas para hacer llamadas remotas a la API del Worklist:

a) REMOTE_CLIENT. Básicamente haciendo uso de EJBs
b) SOAP_CLIENT. A través de llamadas con WS

Si se hace uso de la primera opción, se tendrá un problema de look-up de JNDI similar a :
<::> Error in invoking task query service operation.<::> A client side error occured in invoking the task query service operation TaskQueryService.<::> Please check the exception error stack to identify the error. Contact oracle support if error is not fixable.

Para resolverlo, se tiene que hacer lo siguiente:
Modificar el archivo META-INF/weblogic-ejb-jar.xml en el jar hw_services_ejb.jar:
De ejb/bpel/services/workflow/TaskQueryService
a
TaskQueryService

con ésto ya el JNDI lookup resolverá bien el nombre el objeto y hará la llamada.


Error del PermGen en JDeveloper 11g

0

Un pequeño post para darles una recomendación a aquellos que estén utilizando JDev11g relacionado con el servidor Weblogic embebido -luego de levantar la instancia, este se queda sin espacio en el PermGen. Ya contamos con un workaround que publicó Shay Shmeltzer en sl siguiente artículo.

Aparte de lo que se sugiere Shay, yo adicioné la siguiente opción de Java dentro del mismo archivo

-XX:+CMSPermGenSweepingEnabled

tienen que buscar la linea y adicionarlo la opción el final:

set JAVA_PROPERTIES=-Dplatform.home=%WL_HOME% -Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME%

La semana pasada me enfrente con este problema y la verdad que es bastante molesto, sin embargo luego de aplicar el workaround tudo fluyo sin problemas. En la próxima versión de JDeveloper (que no va ser en 3 años… ;-) esperamos tener ya superado este impercanse.

Actualización para usuarios de Mac:

Durante un entrenamiento que estamos realizando esta semana uno de los usuarios tenía una Mac y luego de especificar los parámetros aún seguiamos obteniendo el error el cual se solucionó luego ver esta entrada en los foros de OTN


Resumen Oracle OOW LAD09

0

La semana pasada se llevó a cabo el Oracle Open World Latinoamerica en la ciudad de Sao Paulo evento en el cual tuve la fortuna de participar. En esta entrada presentaré un resumén del evento a partir de lo que me dejó el interáctuar con partners, clientes e interesados que participaron de las presentaciones que di o en el tiempo que estuve en la zona de demos.

PIC-0068A mi parecer el evento fue todo un éxito -buena asistencia durante los 3 días, bastante interes sobre el desarrollo en Oracle Fusion y la parte de Web2.0. Estuve en contacto con desarrolladores 4GL, así como también, con gente que viene del mundo BEA quienes se mostraron muy interesados en conocer el Framework ADF y los componentes visuales ADF Faces RC así como JDeveloper ya que ellos vienen del mundo EclDSC03426ipse.

 

Aparte de haber echo nuevos contactos y poder llevarme una idea de cual es la situación del mercado brasilero en el área de herramientas de desarrollo, también el evento fue una buena oportunidad para re-encontrarme con amigos y compañeros del mundo Oracle Latinoamerica como el famoso Product Manager y co-autor de este blog Brimful of Asha a.k.a Rolando Carrasco 

Tuve charlas muy interesantes en relación a estrategías de adopción y aprendizaje de ADF y Java, lo cual me deja la impresión que hay una clara iniciativa por parte de las empresas en utilizar esta tecnología sea para migrar aplicaciones existentes (principalmente Forms) o para hacer nuevos desarrollos. Las dudas principales se centran alrededor de cual es la mejor estrategía? Existén herramientas de migración? Cual es el rol de JHeadStart y que beneficios tendría su utilización para llevar a cabo una migración más rápida, capacitaci’on, etc. Misión cumplida por esta 2009 y desde ya me estaré alistando para el OOW09 aquí en San Francisco.

Muchas gracias a Oracle LAD por la invitiación y Obrigado Brasil!!


Skins – Utilizando el styleClass con Componentes ADF Faces RC

0

Días atrás estuve trabajando en un requerimiento de un cliente que estaba buscando la forma de aplicar un styleClass definido en una hoja de estilos CSS, sobre un componente ADF Faces RC directamente -esto, en lugar de aplicar un estilo de manera general para todos los componetes del mismo tipo.

Para poder explicar de mejor forma este requerimiento, voy a mostrarles su implementación. Lo que queremos lograr al final de este articulo es poder renderizar un mismo componente de forma distinta utilizando el styleClass. Para esto voy a utilizar el componente af:menuBar

image Note que para este ejemplo estoy utilizando un af:menuBar que contiene 3 af:menuItem (Dashboard, Action Menu, Menu3). El aspecto particular es que dentro de la plantilla de estilos podríamos definir el skin selector para el menuBarItem utilizando la notación:
af|menu::bar-item

La cual se aplicaría para todos los 3 af:menuItems. Entonces si queremos que algunos de los menu items sean amarillos y los otros rojos, debemos definir distintos styleClass para el mismo menuItem de la siguiente forma:

af|menu::bar-item.commonMenuStyle1{
background-color: red;
}

af|menu::bar-item.commonMenuStyle2{
background-color:Yellow;
}

En este caso estamos definiendo 2 styleClass con el color de fondo diferente color. Ahora todo lo que necesitamos hacer es ir a la propiedad styleClass de los menuItems y especificar el nombre de la clase

image

Bonus: Una de las cosas que encontramos en este requerimiento es que la propiedad de resaltado (hightlight) del af:MenuItem requiere especificar la imagen de fondo en none por lo que el styleClass quedaría así:

af|menu::bar-item:highlighted.commonMenuHighlightStyle{
border: 1px dashed;
background-color: green;
padding: 1px 5px;
background-image:none;
}

Para una mayor información sobre como aplicar skin y los distintos skin selectors pueden consultar en el capitulo 19 de la guía del desarrollador web, así como también pueden tomar como referencia la guia de skining en línea que tenemos aquí


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.


Post navigation