jsf - 将GlassFish迁移到Tomcat会引发java.lang.NoClassDefFoundError:com/sun/enterprise/InjectionException

标签 jsf tomcat glassfish

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

严重:部署期间的严重错误:
            java.lang.NoClassDefFoundError:com / sun / enterprise / InjectionException
            在java.lang.Class.forName0(本地方法)
            在java.lang.Class.forName(Class.java:249)
            在com.sun.faces.util.Util.loadClass(Util.java:269)
            在com.sun.faces.spi.InjectionProviderFactory.getProviderFromEntry(InjectionProviderFactory.java:317)
            在com.sun.faces.spi.InjectionProviderFactory.findProviderClass(InjectionProviderFactory.java:285)
            在com.sun.faces.spi.InjectionProviderFactory.createInstance(InjectionProviderFactory.java:116)
            在com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
            在com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
            在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5099)
            在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)
            在java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)
            在java.util.concurrent.FutureTask.run(FutureTask.java:138)
            在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:895)
            在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 PM org.apache.catalina.core.StandardContext listenerStart
        严重:将上下文初始化事件发送到com.sun.faces.config.ConfigureListener类的侦听器实例的异常
        java.lang.RuntimeException:java.lang.NoClassDefFoundError:com / sun / enterprise / InjectionException
            在com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:290)
            在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5099)
            在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)
            在java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)
            在java.util.concurrent.FutureTask.run(FutureTask.java:138)
            在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:895)
            在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:918)
            在java.lang.Thread.run(Thread.java:662)
        引起原因:java.lang.NoClassDefFoundError:com / sun / enterprise / InjectionException
            在java.lang.Class.forName0(本地方法)
            在java.lang.Class.forName(Class.java:249)
            在com.sun.faces.util.Util.loadClass(Util.java:269)
            在com.sun.faces.spi.InjectionProviderFactory.getProviderFromEntry(InjectionProviderFactory.java:317)
            在com.sun.faces.spi.InjectionProviderFactory.findProviderClass(InjectionProviderFactory.java:285)
            在com.sun.faces.spi.InjectionProviderFactory.createInstance(InjectionProviderFactory.java:116)
            在com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
            在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 PM org.apache.catalina.core.StandardContext startInternal
        严重:一个或多个侦听器无法启动。有关详细信息,请参见相应的容器日志文件。
        2016年8月18日2:55:00 PM org.apache.catalina.core.StandardContext startInternal
        严重:由于先前的错误,上下文[/ TestJSF]启动失败
        2016年8月18日2:55:00 PM javax.faces.FactoryFinder $ FactoryManager getFactory
        严重:应用程序在启动时未正确初始化,找不到工厂:javax.faces.application.ApplicationFactory。试图找到备份。
        2016年8月18日2:55:00 PM com.sun.faces.config.ConfigureListener上下文已销毁
        严重:尝试拆除Mojarra运行时时发生意外异常
        java.lang.IllegalStateException:找不到工厂javax.faces.application.ApplicationFactory的备份。
            在javax.faces.FactoryFinder $ FactoryManager.getFactory(FactoryFinder.java:1010)
            在javax.faces.FactoryFinder.getFactory(FactoryFinder.java:342)
            在com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:141)
            在com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureListener.java:328)
            在org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5146)
            在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)
            在java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)
            在java.util.concurrent.FutureTask.run(FutureTask.java:138)
            在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:895)在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:918)
            在java.lang.Thread.run(Thread.java:662)
        2016年8月18日2:55:00 PM org.apache.coyote.AbstractProtocol开始
        INFO:启动ProtocolHandler [“ http-bio-6060”]
        2016年8月18日2:55:00 PM org.apache.coyote.AbstractProtocol开始
        信息:启动ProtocolHandler [“ ajp-bio-8009”]
        2016年8月18日2:55:00 PM org.apache.catalina.startup.Catalina开始
        INFO:服务器启动时间为8611 ms

最佳答案

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

关于jsf - 将GlassFish迁移到Tomcat会引发java.lang.NoClassDefFoundError:com/sun/enterprise/InjectionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39015411/

相关文章:

eclipse - 简单 Apache FileUpload API 示例的问题

java - Glassfish 上的 Hazelcast 作为 OSGI 包

glassfish-web.xml vs sun-web.xml vs web.xml

java - spring context jndi 属性查找包含所有 Prop ,包括系统 Prop ,而不仅仅是我需要的那一套

java - 在 Eclipse Indigo 中注释声明托管 bean 和代码完成

java - JSF - 从数据表中删除时出现空指针异常

eclipse - HTTP 状态 404 - 请求的资源 (/ProjectName/) 不可用

java - 调试奇怪的内存泄漏 - Java/Tomcat

jsf - 带字符串查询的@ResourceDependency

java - JSF 2.0 动态属性,无需创建新组件