错误:ConfigurationException- Factory' javax.faces.context.ExceptionHandlerFactory'没有正确配置

时间:2014-11-04 07:36:29

标签: java spring maven jsf jetty

我在jetty 8上运行它时遇到了上述错误。 我使用maven依赖 jsf-api-2.1.2 jsf-impl-2.1.2 Spring security 。 用于jetty 8的命令: java -jar start.jar

faces-config.xml

<factory>
  <exception-handler-factory>_PACKAGE_.exceptionhandler.ViewExpiredExceptionExceptionHandlerFactory</exception-handler-factory>

ViewExpiredExceptionExceptionHandlerFactory.java

    public class ViewExpiredExceptionExceptionHandlerFactory extends ExceptionHandlerFactory {

    private ExceptionHandlerFactory parent;

    public ViewExpiredExceptionExceptionHandlerFactory(ExceptionHandlerFactory parent) {
        this.parent = parent;
    }

    @Override
    public ExceptionHandler getExceptionHandler() {
        ExceptionHandler result = parent.getExceptionHandler();
        result = new ViewExpiredExceptionExceptionHandler(result);
        return result;
    }
}

Stackty在码头8

Nov 04, 2014 12:26:54 PM com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Mojarra 2.1.2 (FCS 20110610) for context ''
Nov 04, 2014 12:27:00 PM com.sun.faces.spi.InjectionProviderFactory createInstance
INFO: JSF1048: PostConstruct/PreDestroy annotations present.  ManagedBeans methods marked with these annotations will have said annotations processed.
Nov 04, 2014 12:27:03 PM com.sun.faces.config.ConfigureListener contextInitialized
SEVERE: Critical error during deployment:    
java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: Factory 'javax.faces.context.ExceptionHandlerFactory' was not configured properly.
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:292)
        at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:672)
        at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:403)
        at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:664)
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:239)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1212)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:485)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:546)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:221)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:45)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53)
        at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)
        at org.eclipse.jetty.server.Server.doStart(Server.java:262)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1203)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1126)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:469)
        at org.eclipse.jetty.start.Main.start(Main.java:612)
        at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:265)
        at org.eclipse.jetty.start.Main.main(Main.java:79)
    Caused by: 
    com.sun.faces.config.ConfigurationException: Factory 'javax.faces.context.ExceptionHandlerFactory' was not configured properly.
        at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:305)
        at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:219)
        at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:360)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
        at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:672)
        at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:403)
        at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:664)
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:239)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1212)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:485)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:546)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:221)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:45)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53)
        at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)
        at org.eclipse.jetty.server.Server.doStart(Server.java:262)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1203)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1126)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:469)
        at org.eclipse.jetty.start.Main.start(Main.java:612)
        at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:265)
        at org.eclipse.jetty.start.Main.main(Main.java:79)
    Caused by: 
    javax.faces.FacesException: _PACKAGE_.web.exceptionhandler.ViewExpiredExceptionExceptionHandlerFactory
        at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:603)
        at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:482)
        at javax.faces.FactoryFinder.access$400(FactoryFinder.java:138)
        at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:943)
        at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:316)
        at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:303)
        at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:219)
        at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:360)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
        at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:672)
        at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:403)
        at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:664)
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:239)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1212)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:485)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:546)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:221)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:45)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53)
        at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)
        at org.eclipse.jetty.server.Server.doStart(Server.java:262)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1203)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1126)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:469)
        at org.eclipse.jetty.start.Main.start(Main.java:612)
        at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:265)
        at org.eclipse.jetty.start.Main.main(Main.java:79)
    Caused by: 
    java.lang.ClassNotFoundException: _PACKAGE_.web.exceptionhandler.ViewExpiredExceptionExceptionHandlerFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:424)
        at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:591)
        at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:482)
        at javax.faces.FactoryFinder.access$400(FactoryFinder.java:138)
        at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:943)
        at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:316)
        at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:303)
        at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:219)
        at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:360)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)
        at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:672)
        at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:403)
        at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:664)
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:239)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1212)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:610)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:453)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:485)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:546)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:221)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:45)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53)
        at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)
        at org.eclipse.jetty.server.Server.doStart(Server.java:262)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1203)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1126)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:469)
        at org.eclipse.jetty.start.Main.start(Main.java:612)
        at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:265)
        at org.eclipse.jetty.start.Main.main(Main.java:79)

我不知道发生了什么,但是存在类 ViewExpiredExceptionExceptionHandlerFactory 。 仅供参考我在web.xml中也有 com.sun.faces.config.ConfigureListener ContextLoaderListender RequestContextListner ,如果有帮助的话。

1 个答案:

答案 0 :(得分:0)

您的错误在于,您出于某些不明原因重复使用与现有API类相同的类名,并将其混淆在代码中。

父构造函数参数(和局部变量)必须是javax.faces.context.ExceptionHandlerFactory类型,而不是您的exception.ExceptionHandlerFactory。这种错误的类型导致JSF无法调用构造函数,因此-rather自我解释 - InstantiationException(无法实例化)。

最好将您的类重命名为CustomExceptionHandlerFactory等唯一的类。