Forms Websocket JavaScript Integration (WJSI) con Eclipse Jetty

Presente desde la versión 11g, la integración con JavaScript es una funcionalidad que nos permite, por ejemplo, integrar un formulario con la API de Google Maps, o con contenido HTML.

 

Con la llegada de Oracle Forms 12c y las nuevas implementaciones en el lado cliente (Java Web Start y FSAL), al no poder utilizar un navegador “padre” dejó de ser posible temporalmente usar esta integración. Esta cuestión se ha solucionado en la última versión de Oracle Forms (12.2.1.3). 

A partir de este momento, vuelve a ser posible comunicarse con el contenido HTML incluso cuando ejecutamos nuestra aplicación a través de Java Web Start o Forms Standalone Launcher sin  navegador. Para realizar esta integración en la nueva versión, nos aprovecharemos del uso de un Web Listener extremadamente ligero:

 

Eclipse Jetty

Con Jetty, nuestra aplicación se puede comunicar vía conexiones Web Socket con la página web.

 

Para realizar esta integración con JavaScript necesitaremos:

En el lado del servidor:

  • Copiar a la carpeta donde tengamos nuestras fuentes las librerías WebSocketJSI.pll y WebSocketJSI.olb. Copiar y generar de la forma habitual. Se deberían usar las versiones instaladas en el servidor de aplicaciones, dentro de la carpeta $ORACLE_HOME/forms
  • En el fichero HTML que estemos usando, se debe referenciar frmwebsocketjsi.js
<script type="text/javascript" src="/forms/java/frmwebsocketjsi.js"
  • Añadir firmado el fichero jar correspondiente a Eclipse Jetty. Copiar en el directorio forms/java del servidor y añadir en el fichero de configuración. Este JAR lo podemos descargar del repositorio central Maven.

En la estación de desarrollo:

  • Localizar y abrir WebSocketJSI.olb. Se puede encontrar en la nueva instalación de Oracle Forms 12.2.1.3 de la estación de desarrollo, dentro de $ORACLE_HOME/forms.
  • Subclaseamos o copiamos el objeto WEBSOCKETJSI en el formulario que nos interese.

  • Si es un formulario que ya usaba JavaScript, cambiaremos:

web.javascript_eval_expr –> websocketJSI.javascript_eval_expr

  • Ya podemos probar nuestro formulario

 

En esta página de Oracle podemos ver un tutorial de la integración con JavaScript.

Twitter
LinkedIn
Evolución, innovación y transformación
37 Service Expertise avalados por Oracle 
Nuestra propuesta de valor
Posts 100% Oracle
Sigue nuestro día a día