Procesamiento de XML y uso de XSLT en aplicaciones de SiteStudio o WebCenter

Una de los problemas más comunes a la hora de utilizar XSTL (JSTL para XML), o transformaciones XSL (x:transform por ejemplo) en nuestras aplicaciones de Oracle WebCenter o SiteStudio XA (SSXA) suele residir en el SAX Parser registrado tanto en WebLogic, como en nuestra aplicación.

El error más usual es el siguiente:

XML-22108: (Error) Invalid Source - URL format is incorrect. XML-22000: (Fatal Error) Error while parsing XSL file (weblogic.xml.jaxp.RegistryXMLReader cannot be cast to oracle.xml.parser.v2.SAXParser).

¿Qué significa este error?. 

Que WebLogic por su lado esta utilizando y tiene registrado los "Factory" de la librería xerces.jar y por nuestro lado tenemos en nuestro Classpath de la aplicación la librería de Oracle XML Parser v2. 

¿Cómo se soluciona este error?.

Las posibles soluciones a este error tienen 2 vertientes principalmente:

  • Registrar en WebLogic el Parser Oracle XML Parser v2 e incluirlo en su classpath. (Solución 1).
  • Directamente en el archivo weblogic-application.xml  de nuestra aplicación registrar el "parser" que tiene registrado actualmente WebLogic. (Solución 2).
En el siguiente ejemplo muestro unas imágenes acerca de la Solución 2:
  • En la consola de Administración, en la home de la misma podemos registrar un nuevo "parser". Al intentar generar uno nuevo, vendrá por defecto relleno con los siguientes valores.

    Configuración de Parser por defecto de WebLogic basado en Xerces
  • Copiar estos valores en el archivo de configuración weblogic-application.xml de nuestra aplicación.
    Archivo weblogic-application.xml de una aplicación J2EE con JDeveloper
Al desplegar de nuevo la aplicación podremos observar que se habrá solventado el quebradero de cabeza que suele dar este error :).

Espero haber ayudado un poco :).

Un saludo a todos.

Agradecimientos a Daniel Pascual por su aportación en esta entrada.

PD: Pronto más WebCenter y ADF.



Comments

Popular posts from this blog

OJET: Inter-Module communication in TypeScript Template

OJET: Build and Deploy in an Application Server

OJET: Select All options using only Checkboxset