2014-11-04 141 views
2

,而在我使用Maven的依赖于JSF-API 2.1码头8 运行它,我一直坚持的上述错误。 2jsf-impl-2.1.2 with Spring security。 用于码头8命令:Java的罐子start.jar错误:ConfigurationException-工厂“javax.faces.context.ExceptionHandlerFactory”没有正确配置

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

而堆栈跟踪在码头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存在。 FYI我也有com.sun.faces.config.ConfigureListenerContextLoaderListenderRequestContextListner在web.xml中,有没有什么帮助。

+0

** _包装_ **用于实际包装。我相信它的正确性和匹配性。请显示任何其他方向。 – 2014-11-04 07:55:55

+0

我认为maven在构建war文件时会跳过一些类似handle和listener类的文件。任何理由? – 2014-11-04 09:09:06

回答

0

你的错误是你重复使用了与现有API类相同的类名称,原因不明,并且让它们混淆在代码中。

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

更好地将您的类重命名为像CustomExceptionHandlerFactory这样独特的东西。

+0

请更具体... – Kukeltje 2017-09-15 08:22:33

相关问题