Запуск TomEE plus jsf Примеры
После извлечения 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)
Я единственный, кто получает эту ошибку? Есть ли решение или обходной путь?
1 ответ
Решение
Я разместил тот же вопрос на форуме TomEE: http://openejb.979440.n4.nabble.com/Running-TomEE-plus-jsf-Examples-Fails-td4656561.html и получил очень хорошие ответы. Вот шаги для запуска JSF & CDI на TomEE.
- У TomEE была ошибка в версии 1. Теперь она исправлена. Это, вероятно, вызвало эту ошибку.
- Преодолеть эту проблему, проверив последнюю версию TomEE: http://openejb.apache.org/builds.html
- Чтобы запустить пример JSF с cdi на TomEE:
- Извлечь последнюю версию примера (извлечение SVN из https://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/)
- Постройте проект (Maven) по https://svn.apache.org/repos/asf/openejb/trunk/openejb/examples/moviefun/
- Запустите пример moviefun для последней версии TomEE (перейдите к ссылкам JSF после запуска).
Кстати, стабильная версия TomEE собирается выпустить в сентябре этого года. Это, вероятно, покрыло бы проблему.