参见英文答案 > Why am I getting a NoClassDefFoundError in Java? 20个
我想将我的应用程序部署到版本7中的tomcat,我得到以下异常java.lang.NoClassDefFoundError:javax / el / ELManager
但是,如果我尝试将此应用程序部署到tomcat版本8,它可以正常工作.
你有任何想法如何解决这个问题?
为什么我要从tomcat 8切换到7?在测试环境中,repo中的tomcat 8和服务器上的tomcat7.
的pom.xml
web.xml中
发生的事情是您不小心引入了对EL 3.0 API的依赖…并将其包含在您的POM文件中.它在Tomcat 8上工作.但在Tomcat 7上,该平台支持EL 2.1.因此,当您的应用程序尝试加载javax.el.ELManager的类文件时…它会失败.
解决方案:
>将您的生产平台升级到Tomcat 8
>针对Tomcat 7进行测试,并消除新代码中代码库中的任何依赖关系.
Apache Tomcat Versions页面列出了每个主要版本Tomcat的各种规范版本.
Is there no possibility to solve this issue?
如果您准备“屠宰”Tomcat 7服务器,您可能可以用更新的实现替换EL实现.但我不会尝试,因为1)它可能根本不起作用,2)结果可能难以维持.并且您有责任为您的运营,质量保证和/或安全团队提供中风!
Is there no possibility to solve this issue with changes in the application?
当然.更改您的POM以摆脱这个: