1

在提取 TomEE-plus (apache-tomee-1.0.0-plus.zip) 并构建 jsf 示例(在 examples-4.0.0-src.zip\webapps\jsf 上)后,我遇到了以下catalina.*.log错误信息:

SEVERE: An error occured while initializing MyFaces: Class org.apache.openejb.jsf.CustomApplicationFactory is no javax.faces.application.ApplicationFactory
java.lang.IllegalArgumentException: Class org.apache.openejb.jsf.CustomApplicationFactory is no javax.faces.application.ApplicationFactory
    at javax.faces.FactoryFinder.newFactoryInstance(FactoryFinder.java:128)
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:107)
    at org.apache.myfaces.config.FacesConfigurator.configureApplication(FacesConfigurator.java:598)
    at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigurator.java:276)
    at org.apache.myfaces.webapp.AbstractFacesInitializer.buildConfiguration(AbstractFacesInitializer.java:131)
    at org.apache.myfaces.webapp.Jsp21FacesInitializer.initContainerIntegration(Jsp21FacesInitializer.java:64)
    at org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces(AbstractFacesInitializer.java:83)
    at org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized(StartupServletContextListener.java:58)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:962)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1603)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

我是唯一一个得到这个错误的人吗?有解决方案或解决方法吗?

4

1 回答 1

0

我在 TomEE 的论坛上发布了同样的问题:http://openejb.979440.n4.nabble.com/Running-TomEE-plus-jsf-Examples-Fails-td4656561.html 得到了很好的答案。以下是在 TomEE 上运行 JSF 和 CDI 的步骤。

  1. TomEE 曾经在版本 1 上存在错误。现在已修复。这可能导致了该错误。
  2. 通过查看最新版本的 TomEE 来克服这个问题:http: //openejb.apache.org/builds.html
  3. 为了在 TomEE 上使用 cdi 运行 JSF 示例:

顺便说一句:TomEE 的稳定版本将于今年 9 月发布。这可能会涵盖问题。

于 2012-08-01T19:19:45.013 回答