将GlassFish迁移到Tomcat会抛出java.lang.NoClassDefFoundError:com / sun / enterprise / InjectionException

时间:2016-08-18 10:07:06

标签: jsf tomcat glassfish

当我将glassfish服务器更改为Apache tomcat时,我收到此错误,如何修复此错误严重:部署期间出现严重错误我是如此尝试但我失败了。我是jsf和primefaces的新手

严重:部署期间出现严重错误:             java.lang.NoClassDefFoundError:com / sun / enterprise / InjectionException             at java.lang.Class.forName0(Native Method)             在java.lang.Class.forName(Class.java:249)             at com.sun.faces.util.Util.loadClass(Util.java:269)             at com.sun.faces.spi.InjectionProviderFactory.getProviderFromEntry(InjectionProviderFactory.java:317)             at com.sun.faces.spi.InjectionProviderFactory.findProviderClass(InjectionProviderFactory.java:285)             at com.sun.faces.spi.InjectionProviderFactory.createInstance(InjectionProviderFactory.java:116)             at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)             at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)             在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5099)             at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5615)             在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)             在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1571)             在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1561)             at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)             在java.util.concurrent.FutureTask.run(FutureTask.java:138)             at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:895)             at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:918)             在java.lang.Thread.run(Thread.java:662)         引起:java.lang.ClassNotFoundException:com.sun.enterprise.InjectionException             在org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891)             在org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)             ......还有18个         2016年8月18日下午2:55:00 org.apache.catalina.core.StandardContext listenerStart         SEVERE:将上下文初始化事件发送到类com.sun.faces.config.ConfigureListener的侦听器实例的异常         java.lang.RuntimeException:java.lang.NoClassDefFoundError:com / sun / enterprise / InjectionException             at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:290)             在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5099)             at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5615)             在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)             在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1571)             在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1561)             at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)             在java.util.concurrent.FutureTask.run(FutureTask.java:138)             at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:895)             at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:918)             在java.lang.Thread.run(Thread.java:662)         引起:java.lang.NoClassDefFoundError:com / sun / enterprise / InjectionException             at java.lang.Class.forName0(Native Method)             在java.lang.Class.forName(Class.java:249)             at com.sun.faces.util.Util.loadClass(Util.java:269)             at com.sun.faces.spi.InjectionProviderFactory.getProviderFromEntry(InjectionProviderFactory.java:317)             at com.sun.faces.spi.InjectionProviderFactory.findProviderClass(InjectionProviderFactory.java:285)             at com.sun.faces.spi.InjectionProviderFactory.createInstance(InjectionProviderFactory.java:116)             at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)             at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)             ......还有10个         引起:java.lang.ClassNotFoundException:com.sun.enterprise.InjectionException             在org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891)             在org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)             ......还有18个         2016年8月18日下午2:55:00 org.apache.catalina.core.StandardContext startInternal         严重:一个或多个听众未能开始。完整的详细信息将在相应的容器日志文件中找到         2016年8月18日下午2:55:00 org.apache.catalina.core.StandardContext startInternal         严重:由于先前的错误,Context [/ TestJSF]启动失败         2016年8月18日下午2:55:00 javax.faces.FactoryFinder $ FactoryManager getFactory         严重:应用程序在启动时未正确初始化,找不到Factory:javax.faces.application.ApplicationFactory。试图找到备份。         2016年8月18日下午2:55:00 com.sun.faces.config.ConfigureListener contextDestroyed         严重:尝试拆除Mojarra运行时时出现意外异常         java.lang.IllegalStateException:找不到工厂javax.faces.application.ApplicationFactory的备份。             在javax.faces.FactoryFinder $ FactoryManager.getFactory(FactoryFinder.java:1010)             在javax.faces.FactoryFinder.getFactory(FactoryFinder.java:342)             at com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:141)             at com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureListener.java:328)             at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5146)             at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5810)             在org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:224)             在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:159)             在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1571)             在org.apache.catalinaa.core.ContainerBase $ StartChild.call(ContainerBase.java:1561)             at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)             在java.util.concurrent.FutureTask.run(FutureTask.java:138)             at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:895)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:918)             在java.lang.Thread.run(Thread.java:662)         2016年8月18日下午2:55:00 org.apache.coyote.AbstractProtocol开始         信息:启动ProtocolHandler [" http-bio-6060"]         2016年8月18日下午2:55:00 org.apache.coyote.AbstractProtocol开始         信息:启动ProtocolHandler [" ajp-bio-8009"]         2016年8月18日下午2:55:00 org.apache.catalina.startup.Catalina开始         信息:服务器启动时间为8611毫秒

1 个答案:

答案 0 :(得分:1)

请记住,Glassfish是一个支持JAVA EE的应用服务器,而tomcat不支持这个,apache org的解决方案是apache TomEE。