Jsf/spring/hibernateをファラメワークとして使用するプロジェクトのデプロイで問題が発生しました。必要なjar、特に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)
追加されたjarのリスト:
antlr-2.7.6.jar
コモンズ-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.expression-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…デバッグ用のアプリケーションサーバーを作成しますが、正しいSpringjarが含まれていることを確認してください。
。
解決策2。ビルドツールとしてMavenを使用していて、それを使用して依存関係をダウンロードしている場合、jarの競合が発生する可能性があります。 Tomcatサーバーは通常、servlet-apiやjpa-apiなどのいくつかのjarを提供するためです。したがって、Mavenを使用してそれらを再度含めると、それらを識別するのに問題があります。
ソリューション3。 EclipseをIDEとして使用し、ビルドツールとしてMavenを使用し、サーバーとしてTomcatを使用している場合、Tomcatサーバーはjarを参照しないことに注意してください。フォルダーの中にあります。そのために小さなトリックがあります。
これらの解決策の1つが問題の解決に役立つことを願っています。ハッピーコーディングとそれがJavaを使用していることを確認してください。
私の状況では、Mavenを使用してプロジェクトをビルドしています。warファイルが正しく作成されていないという理由だけで、この例外が発生します。 warファイルを確認し、インストールを再度実行すると、問題が解決します。
すべてのSpringjarを最新バージョン(3.2.2.RELEASE)に置き換えることをお勧めします
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>
サーバーのクラスパスにSpringjarライブラリが含まれていることを確認してください。 このリンクを見る 。
必要なjarファイルをダウンロードする必要があります。次のリンクからspring-context.jarファイルをダウンロードできます。
http://mvnrepository.com/artifact/org.springframework/spring-context/3.2.2.RELEASE