Exécution de TomEE plus exemples jsf
-
13-12-2019 - |
Question
Après avoir extrait TomEE-plus (apache-tomee-1.0.0-plus.zip) et construit l'exemple jsf (sur examples-4.0.0-src.zip\webapps\jsf), je suis tombé sur l'erreur suivante sur catalina.*.log
avec le message suivant :
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)
Suis-je le seul à recevoir cette erreur ?Existe-t-il une solution ou une solution de contournement ?
La solution
J'ai posté la même question sur le forum de TomEE :http://openejb.979440.n4.nabble.com/Running-TomEE-plus-jsf-Examples-Fails-td4656561.html et j'ai obtenu de très bonnes réponses.Voici les étapes pour exécuter JSF et CDI sur TomEE.
- TomEE avait un bug sur la version 1.C'est maintenant corrigé.Cela a probablement causé cette erreur.
- Surmontez ce problème en consultant la dernière version de TomEE :http://openejb.apache.org/builds.html
- Afin d'exécuter un exemple JSF avec cdi sur TomEE :
- Récupérer la dernière version d'exemple (extraction SVN à partir de https://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/)
- Construisez le projet (Maven) sur https://svn.apache.org/repos/asf/openejb/trunk/openejb/examples/moviefun/
- Exécutez l'exemple moviefun sur la dernière version de TomEE (accédez aux liens JSF une fois exécuté).
D'ailleurs:Une version stable de TomEE est sur le point de sortir en septembre.Cela couvrirait probablement le problème.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow