Comment déployer un JSF 2.1 webapp dans Oracle Weblogic 12.1?
Je suis en train de déployer un programme d'ACI 2.1 webapplication à un serveur d'application Weblogic 12.1, mais le déploiement échoue avec l'exception suivante
<javax.enterprise.resource.webcontainer.jsf.config> <BEA-000000>
<Critical error during deployment:
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED!
com.oracle.injection.integration.jsf.WeblogicFacesConfigResourceProvider
cannot be cast to com.sun.faces.spi.ConfigurationResourceProvider
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:377)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:582)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
Truncated. see log file for complete stacktrace
Je suis l'aide de la Mojarra mise en œuvre de la Version 2.1.13 - ici est le correspondant pom.xml
entrée:
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.13</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.13</version>
</dependency>
J'ai ajouté les lignes suivantes à la weblogic.xml
pour empêcher la weblogic server à partir du chargement de la expédiées jsf mise en œuvre:
<container-descriptor>
<prefer-web-inf-classes>false</prefer-web-inf-classes>
<prefer-application-packages>
<package-name>javax.faces.*</package-name>
<package-name>com.sun.faces.*</package-name>
<package-name>com.bea.faces.*</package-name>
</prefer-application-packages>
<prefer-application-resources>
<resource-name>javax.faces.*</resource-name>
<resource-name>com.sun.faces.*</resource-name>
<resource-name>com.bea.faces.*</resource-name>
<resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
</prefer-application-resources>
</container-descriptor>
La WeblogicFacesConfigResourceProvider
est contenue dans le weblogic.jar
.
Donc ce qui ne va pas ici? - Un indice?
Solution
Bon, j'ai trouvé la solution: vous devez ajouter le META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider
à la prefer-application-resources
-section dans le weblogic.xml
. Cette configuration fonctionne pour moi:
faux
javax.des visages.
com.soleil.des visages.
com.bea.des visages.*
<prefer-application-resources>
<resource-name>javax.faces.*</resource-name>
<resource-name>com.sun.faces.*</resource-name>
<resource-name>com.bea.faces.*</resource-name>
<resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
<resource-name>META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider</resource-name>
</prefer-application-resources>
</container-descriptor>
OriginalL'auteur oehmiche | 2012-10-15
Vous devez vous connecter pour publier un commentaire.
L'ajout de la solution mentionnée par
oehmiche
dans sa question une réponse.Ajouter les META-INF/services/com.soleil.des visages.le spi.FacesConfigResourceProvider à la préférez-application-ressources-section dans le weblogic.xml. Cette configuration fonctionne pour moi: faux javax.des visages. com.soleil.des visages. com.bea.des visages.*
OriginalL'auteur Mani
Une plus oemiche's solution: Sur WebLogic 12c R2 (12.2), vous devez remplacer la jsf.js venant de WegLogic de l'glassfish.jar (JSF 2.2):
Ajouter la ligne suivante dans le préférez-application-ressources après ...FacesConfigResourceProvider:
Vous devez l'ajouter à weblogic-application.xml si vous déployez votre application sous la forme d'une oreille.
OriginalL'auteur Pittmann György