【问题标题】:richfaces 4.2.1.Final not working with jetty 8Richfaces 4.2.1.Final 不能与码头 8 一起使用
【发布时间】:2012-04-25 13:45:51
【问题描述】:

Richfaces 4.2.1.Final 已经发布,我正在尝试将它与 jetty 8 一起使用,因为 richfaces 本身的文档说它与 jetty 8 兼容,但在部署时出现错误..

java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:951)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:316)
at javax.faces.webapp.FacesServlet.init(FacesServlet.java:302)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:456)
at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:276)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:779)
at org.eclipse.jetty.servlet.ServletHandler.updateMappings(ServletHandler.java:1229)
at org.eclipse.jetty.servlet.ServletHandler.setServletMappings(ServletHandler.java:1288)
at org.eclipse.jetty.servlet.ServletHandler.addServletMapping(ServletHandler.java:888)
at org.eclipse.jetty.servlet.ServletHolder$Registration.addMapping(ServletHolder.java:621)
at org.richfaces.webapp.ResourceServletContainerInitializer.registerServlet(ResourceServletContainerInitializer.java:67)
at org.richfaces.webapp.ResourceServletContainerInitializer.onStartup(ResourceServletContainerInitializer.java:57)
at org.richfaces.webapp.RichFacesServletsInitializer.onStartup(RichFacesServletsInitializer.java:63)
at org.eclipse.jetty.plus.annotation.ContainerInitializer.callStartup(ContainerInitializer.java:100)
at org.eclipse.jetty.annotations.ServletContainerInitializerListener.contextInitialized(ServletContainerInitializerListener.java:99)
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:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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)

任何帮助将不胜感激...

【问题讨论】:

    标签: jsf-2 richfaces


    【解决方案1】:

    请使用最新的 Jetty 8 版本。在我撰写本文时,最新版本是 8.1.3.v20120416。 Jetty 8.0.x 也有类似的问题。升级 Jetty 后,它没有任何问题。

    【讨论】:

    • 谢谢.. 它工作得很好。在我尝试此构建之前,但还有一些其他错误,因此无法部署。
    【解决方案2】:

    MyFaces 和 Mojarra 通过 JSF 核心 taglib 的 TLD 文件为启动配置注册一个 servlet 上下文监听器。到目前为止,这在大多数容器上都没有问题,但它不再在 Jetty 8 上工作。原因是 Jetty 8 使用 Glassfish JSP 实现,它要求 TLD 文件位于容器的类路径中。如果通过 Jetty Maven 插件启动应用程序并抛出上述异常,则不是这种情况。

    请看这里:http://jsflive.wordpress.com/2012/08/19/jsf-2-on-jetty-8/

    【讨论】:

      猜你喜欢
      • 2017-04-24
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多