7

jsf/spring/hibernate を faramework として使用するプロジェクトを展開する際に問題に直面しました。必要な 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

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 (モジャラ 2.0.4)

jsf-impl.jar (モジャラ 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 (Primeface 用)

primefaces-3.5jar

slf4j-api-1.6.1.jar

slf4j-jdk14-1.6.1.jar

qlfj4-log4j12-1.6.4.jar

4

6 に答える 6

23

このエラーについては、さまざまな解決策が考えられます。私のために働いていたものを書き留めました。

解決策 1.これは、展開およびデバッグ環境で常に発生します。デプロイメント環境では、サーバーのクラスパスに Spring jar ライブラリ (例: spring-4.0.4.jar) が含まれていることを確認してください。

デバッグ環境では、IDE によって手順が異なる場合がありますが、解決策は同じです。Eclipse では、開発者は通常、Tomcat、jboss など、デバッグ用のアプリケーション サーバーを作成しますが、正しい Spring jar が含まれていることを確認してください。

  1. デバッグ サーバーをダブルクリックします。
  2. 「Open launch configuration」をクリックして、サーバー環境にアクセスします
  3. クラスパスタブをクリック
  4. ここに Spring jar ファイルを含めます。Spring の依存関係により、共通のログ jar も必要になる場合があります。
  5. 完了したら、アプリケーションを再度実行します。

.

解決策 2. Maven をビルド ツールとして使用し、それを使用して依存関係をダウンロードしている場合、jar の競合が発生する可能性があります。Tomcat サーバーは通常、servlet-api や jpa-api などのいくつかの jar を提供するためです。したがって、maven を使用して再度それらを含めた場合。それらを識別するのに問題があります。

解決策 3. Eclipse を IDE として使用し、Maven をビルド ツールとして使用し、Tomcat をサーバーとして使用している場合。Tomcat サーバーは、フォルダーのすぐ内側にある jar を検索しないことを覚えておいてください。そのためには、ちょっとしたコツがあります。

  1. プロジェクトを右クリックし、プロパティを選択します
  2. 表示されたウィンドウから、Deployment Assemblyを選択します。
  3. 追加を選択
  4. Maven の依存関係を追加する
  5. [適用]をクリックし、[ OK ] をクリックします

これらの解決策のいずれかが問題の解決に役立つことを願っています。幸せなコーディングで、Java を使用していることを確認してください。

于 2014-09-16T09:59:01.050 に答える
0

必要なjarファイルをダウンロードする必要があります。次のリンクから spring-context.jar ファイルをダウンロードできます。

http://mvnrepository.com/artifact/org.springframework/spring-context/3.2.2.RELEASE

于 2013-04-13T15:35:25.553 に答える
0

サーバーのクラスパスに Spring jar ライブラリが含まれていることを確認してください。このリンクを見てください

于 2014-03-30T16:11:55.513 に答える