我在部署我的项目时遇到了问题,我使用jsf/spring/hibernate作为faramework,我特别添加了必要的jars org.springframework.web-3.1.0.CI-1162,错误是:
SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4150)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
以及添加的罐子列表:
antlr-2.7.6.jar
commons-dbcb-1.4.jar
commons-collections-3.1.jar
commons-pool.1.6.jar
commons-logging-1.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
iText-5.0.4.jar(对于 Primefaces)
javassist-3.9.0.GA.jar
com.springsource.org.jboss-el-2.0.0.GA.jar(在 Tomcat 6 上运行时可选)
jsf-api.jar(Mojarra 2.0.4)
jsf-impl.jar(Mojarra 2.04)
jta-1.1.jar
log4j-1.2.11.jar
mysql-connector-java-5.0.5.jar(对于 MySQL)
org.springframework.aop-3.1.0.CI-1162.jar
org.springframework.asm-3.1.0.CI-1162.jar
org.springframework.aspects-3.1.0.CI-1162.jar
org.springframework.beans-3.1.0.CI-1162.jar
org.springframework.context-3.1.0.CI-1162.jar
org.springframework.context.support-3.1.0.CI-1162.jar
org.springframework.core-3.1.0.CI-1162.jar
org.springframework.express-3.1.0.CI-1162.jar
org.springframework.jdbc-3.1.0.CI-1162.jar
org.springframework.orm-3.1.0.CI-1162.jar
org.springframework.oxm-3.1.0.M1.jar
org.springframework.transaction-3.1.0.CI-1162.jar
org.springframework.web-3.1.0.CI-1162.jar
org.springframework.web.portlet-3.1.0.M1.jar
org.springframework.web.servlet-3.1.0.CI-1162.jar
poi-3.2-FINAL-20081019.jar(对于 Primefaces)
primefaces-3.5jar
slf4j-api-1.6.1.jar
slf4j-jdk14-1.6.1.jar
qlfj4-log4j12-1.6.4.jar
对于这个错误,可以有不同的解决方案。我已经记下了那些对我有用的。
解决方案1. 这种情况在部署和调试环境中经常发生。 在部署环境中,只需确保您的服务器类路径已包含 Spring jar 库(例如 spring-4.0.4.jar)。
在调试环境中,不同IDE的步骤可能有所不同,但解决方案是相同的。在 Eclipse 中,开发人员通常会创建一个 tomcat、jboss...任何应用程序服务器来进行调试,只需确保包含正确的 Spring jar 即可。
.
解决方案 2. 如果您使用 Maven 作为构建工具并使用它下载依赖项,则可能会出现一些 jar 冲突。因为Tomcat服务器通常会提供一些jar,例如servlet-api和jpa-api。因此,如果您再次使用 Maven 包含它们;识别它们时会有问题。
解决方案3。如果您使用Eclipse作为IDE,使用Maven作为构建工具,tomcat作为服务器;请记住,Tomcat 服务器不会查看文件夹内的 jar。为此,有一个小技巧,
希望这些解决方案之一能够帮助您解决您的问题。 快乐编码并确保使用 Java。
在我的情况下,我使用maven来构建项目,只是因为war文件没有正确创建,所以会导致这个异常。 我检查了 war 文件并再次运行安装,这解决了我的问题。
您必须下载必要的jar文件。您可以从以下链接下载 spring-context.jar 文件
http://mvnrepository.com/artifact/org.springframework/spring-context/3.2.2.RELEASE
我建议您将所有 Spring jar 替换为最新版本(3.2.2.RELEASE)
确保您的服务器类路径已包含 Spring jar 库。 观看此链接。
我使用eclipse发现Deployment Assembly没有maven依赖配置, 所以我修改了 .classpath 从
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
到
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
就我而言,我的 pom.xml 中有重复的依赖项。尝试检查并删除重复项