mardi 19 avril 2011

«Failed to load user defined filter» after upgrade from portal 10.1.4.0 to portal 11.1.1.3

Après avoir migré de portal 10.1.4.0 à portal 11.1.1.3, les omniportlets ramènent le message d'erreur suivant:

Failed to load user defined filter
Dans le fichier WLS_PORTAL-diagnostic.log, l'on peut voir le message d'erreur:

oracle.xml.parser.v2.XMLParseException: Start of root element expected.
at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:323)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:380)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:321)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:319)
at oracle.xml.xslt.XSLProcessor.newXSLStylesheet(XSLProcessor.java:682)
at oracle.xml.xslt.XSLStylesheet.(XSLStylesheet.java:287)
at oracle.xml.parser.v2.XSLStylesheet.(XSLStylesheet.java:90)
at oracle.webdb.reformlet.data.xml.FilterHandler.loadFilter(Unknown Source)
at oracle.webdb.reformlet.data.xml.XMLDataDefinition.createContext(Unknown Source)
at oracle.webdb.reformlet.data.DataSourceDefinitionWrapper.createContext(Unknown Source)
at oracle.webdb.reformlet.definition.DataDefinition.setDataSourceInfoInContext(Unknown Source)
at oracle.webdb.reformlet.definition.DataDefinition.execute(Unknown Source)
at oracle.webdb.reformlet.definition.DataDefinition.execute(Unknown Source)
at oracle.webdb.reformlet.api.layout.LayoutContext.nextRow(Unknown Source)
at oracle.webdb.reformlet.api.el.ELRows.hasNext(Unknown Source)
...
...
Cela est dû au fait que les URLs dans les omniportlets sont sous la forme:

Pour le XML url:
http://localhost:7777/pls/pes/P_PESB_RECUP_FIL_RSS?P_IDENT=1&P_PERSP=Accueil

Pour le XSL filter url:
http://localhost:7777/portal/page/portal/14F1816FBFB751AEE04400144F0104BD

«localhost» a été utilisé dans la version 10g pour que les pages soient portables, c'est à dire qu'on peut exporter les pages d'un environnement à un autre et les omniportlets restent fonctionnels car localhost existe aussi sur l'hote cible.

Le problème vient du fait qu'avec la version 11g de portal, le server de bd qui abrite le metadata repository doit être capable de communiquer avec le serveur de midle tier par le virtual host utilisé. Puisque localhost est utilisé, il faut que le server de bd puisse communiquer avec le server de midle tier par localhost !!! ce qui est impossible, puisque sur chaque server, localhost pointe sur le serveur lui même.

Pour régler ce problème, il faut:

- Créer un virtual host commun dans tous les environnements (pour que les pages restent portables).
- Il faut definir ce virtual host dans le fichier /etc/hosts du serveur de bd de sorte qu'il pointe sur le serveur de middle tier ou le definir dans un DNS.
- Modifier tous les omniportlets pour qu'ils utilisent ce nouveau virtual host.

Hope it helps...

Aucun commentaire:

Enregistrer un commentaire