Bereitstellen von JSF 2.1 webapp in Oracle Weblogic 12.1?

Ich versuche zum bereitstellen von JSF 2.1 webapplication auf einem Weblogic 12.1 application server, aber die Bereitstellung fehlschlägt, mit der folgenden Ausnahme

<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

Ich bin mit der Implementierung Mojarra Version 2.1.13 - hier ist die entsprechende pom.xml Eintrag:

<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>

Habe ich noch folgende Zeilen an das weblogic.xml um zu verhindern, dass der weblogic server von dem laden die mitgelieferten jsf-Implementierung:

<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>

Den WeblogicFacesConfigResourceProvider enthalten ist, in der weblogic.jar.

So, was läuft hier falsch? - Irgendwelche Tipps?


Lösung

Okay, ich habe die Lösung gefunden: Sie haben zum hinzufügen von META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider zu den prefer-application-resources-Abschnitt in der weblogic.xml. Diese Konfiguration funktioniert bei mir:

false

javax.Gesichter.
com.Sonne.Gesichter.

com.bea.Gesichter.*

    <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>
InformationsquelleAutor oehmiche | 2012-10-15
Schreibe einen Kommentar