Search code examples
jsfweblogic

Could not find backup for factory javax.faces.context.FacesContextFactory Weblogic


I'm using JSF2.1 Mojarra on Weblogic 12c with Servlet 3.0. jsf-api and jsf-impl are NOT in /WEB-INF/lib after build/deploy. I've tried checking for classpath pollution, but don't see anything. This is the error:

java.lang.IllegalStateException: Could not find backup for factory 
 javax.faces.context.FacesContextFactory. 
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1010)
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:342)
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:302)
    at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction
                   .run(StubSecurityHelper.java:337)
    at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction
                   .run(StubSecurityHelper.java:288)
    Truncated. see log file for complete stacktrace

Here's what I found in my classpath that relates to JSF:

com.oracle.adf.library:JSF:pom:12.1.2-0-0
com.sun.faces:jsf-api:jar:2.1.7-01
com.sun.faces:jsf-impl:jar:2.1.7-01

Here's everything in my classpath:

com.bea.core.antlr:runtime:jar:1.0.0.0_3-2
com.oracle.adf.library:Contexts-and-Dependency-Injection:pom:12.1.2-0-0
com.oracle.adf.library:Java-EE:pom:12.1.2-0-0
com.oracle.adf.library:JSF:pom:12.1.2-0-0
com.oracle.adf.library:JSP-Runtime:pom:12.1.2-0-0
com.oracle.adf.library:JSTL:pom:12.1.2-0-0
com.oracle.adf.library:TopLink:pom:12.1.2-0-0
com.oracle.adf:eclipselink:jar:12.1.2-0-0
com.sun.faces:jsf-api:jar:2.1.7-01
com.sun.faces:jsf-impl:jar:2.1.7-01
com.sun.mail:javax.mail:jar:1.4.4
glassfish:el:jar:1.1.0.0_2-2
glassfish:jstl:jar:1.2.2.0
javax.enterprise:deploy:jar:1.3
javax.enterprise:inject:jar:1.1
javax.management:j2ee:jar:1.1.0.0
javax.security:jacc:jar:1.1.0.0_1-1
javax.servlet:jstl:jar:1.2
javax.servlet:servlet-api:jar:2.5
javax.xml:registry:jar:1.1.0.0_1-0-4
javax.xml:rpc:jar:1.2.3
javax.xml:stream:jar:1.1.1.0
javax.xml:ws:jar:2.3.0
javax:ejb:jar:3.2.0
javax:inject:jar:1.1
javax:interceptor:jar:1.2
javax:jms:jar:1.1.3
javax:jsp:jar:3.0.0.0_2-2
javax:resource:jar:1.6.1
javax:servlet:jar:2.1.0.0_3-0
javax:transaction:jar:2.1.0.0_1-1
javax:validation:jar:1.1.0
junit:junit:jar:4.4:test
log4j:log4j:jar:1.2.16
org.eclipse.persistence:javax.persistence:jar:2.0.5-SNAPSHOT
org.eclipse.persistence:nosql:jar:2.4.2.v20130514-5956486
org.eclipse.persistence:org.eclipse.persistence.oracle.nosql:jar:2.4.2-SNAPSHOT
org.glassfish:javax.annotation:jar:3.0.1

Solution

  • I found the issue. In WEB-INF/faces-config.xml, I had a navigation-handler that was pointing to a class that didn't exist. Correcting this resolved the issue.