Oracle Forms 12c – Client Deployment: Java Web Start
21/03/2016 -
Hace poco os hablábamos en este post de las novedades de Forms & Reports 12c y de las implementaciones en el lado cliente.
En esta entrada nos centraremos en Java Web Start que, a diferencia del método tradicional, no necesita navegador(*) y opcionalmente utiliza el plugin de Java o la JDK. Esta opción ya existía en versiones anteriores, pero no estaba soportada por Oracle. Además, se ha simplificado como veremos mas adelante.
Java Web Start nos permite ejecutar aplicaciones Forms localmente, descargando el fichero con la especificación JNLP (Java Network Launching Protocol) y centralizando nuestra aplicación en el servidor WebLogic. Al abrir la url en cualquier navegador se nos descargará y ejecutará el fichero .jnlp, arrancando automáticamente el binario javaws, que está incluido en la JDK y/o JRE desde la versión 1.5 de java.
Os recordamos las características de esta implementación:
- Soporta SSO (cuando se utiliza con el navegador)
- No hay soporte para SSO Logout o integración Java Script
- Requiere una instalación de JDK / JRE
- Presenta aplicación con un aspecto nativo
(*) Aunque no necesitamos navegador, arrancar la aplicación desde el mismo es la manera más fácil para descargar el fichero por primera vez y, también, para asegurarnos de que tenemos siempre la última versión del fichero .jnlp; por tanto, esta opción de arranque es la recomendada. Además, si arrancamos la aplicación ejecutando el fichero directamente, no podremos usar todas las funcionalidades que dependen del navegador (SSO).
En la instalación completa de Forms y Reports 12c, tenemos dos configuraciones de ejemplo:
- Webstart: http://servidor:puerto/forms/frmservlet?config=webstart
- Webutil_webstart: http://servidor:puerto/forms/frmservlet?config=webutil_webstart
Si abrimos estas url’s en un navegador, podemos observar el funcionamiento de Java Web Start ejecutando el formulario de prueba test.fmx:
En sus secciones de configuración, podemos ver las diferencias:
[webstart]
basejnlp=base.jnlp
webstart=enabled
[webutil_webstart]
WebUtilLogging=off
WebUtilLoggingDetail=normal
WebUtilErrorMode=Alert
WebUtilDispatchMonitorInterval=5
WebUtilTrustInternal=true
WebUtilMaxTransferSize=16384
basejnlp=webutil.jnlp
webstart=enabled
Estos ficheros vienen por defecto en el siguiente directorio: $INSTANCE_HOME/server
La diferencia principal entre los ficheros base.jnlp y webutil.jnlp es que el fichero webutil.jnlp ya viene configurado para el uso de webutil:
<jar href=”%contextRoot%/java/frmwebutil.jar” download=”lazy” main=”false” />
<param name=”WebUtilLogging” value=”%WebUtilLogging%”/>
<param name=”WebUtilLoggingDetail” value=”%WebUtilLoggingDetail%”/>
<param name=”WebUtilErrormode” value=”%WebUtilErrorMode%”/>
<param name=”WebUtilDispatchMonitorInterval” value=”%WebUtilDispatchMonitorInterval%”/>
<param name=”WebUtilTrustInternal” value=”%WebUtilTrustInternal%”/>
<param name=”WebUtilMaxTransferSize” value=”%WebUtilMaxTransferSize%”/>
Como se puede observar en las configuraciones de ejemplo, vienen dos parámetros nuevos:
basejnlp= Fichero base JNLP
webstart=enabled
Si añadimos estos dos parámetros a cualquier configuración existente, activarán Web Start para la misma. En nuestro caso, hemos realizado una copia de una aplicación existente a una nueva con Web Start activado (ejemplo-webstart), añadiendo los dos parámetros Basejnlp y Webstart.
Por último, si accedemos a WebStart y a Forms Managed Server (WLS) a través de un proxy, usaremos el siguiente parámetro:
webstart_codebase=http://proxyserver:port/forms/java