1

Web アプリケーション (自分でコーディングしたものではない) を実行しようとしましたが、デプロイ時に次の例外が発生します。

  1. java.lang.NoSuchMethodError: org.springframework.web.context.ConfigurableWebApplicationContext.setId(Ljava/lang/String;)V

WEB-INF/libsフォルダー (私は spring バージョン 3.2.0.M1 を使用しています)内の spring-blabla jar にバージョンの競合がないことを既に確認して検証しており、 pom.xmlファイルの依存関係には次のものがあります。形。

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>

私はかなり必死だったので、最後の手段として、中国のサイトをチェックし、* web.xml * ファイルで次のリスナーを試しました。

<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>

既存のものの下:

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

アプリケーションを実行しているときに、以前の例外を受け取っていませんが、別の例外を受け取っています。

コンテキストの初期化に失敗しました org.springframework.beans.BeanInstantiationException: Bean クラスをインスタンス化できませんでした [org.springframework.web.context.support.XmlWebApplicationContext]: コンストラクターが例外をスローしました。ネストされた例外は java.lang.NoSuchMethodError: org.springframework.jndi.JndiLocatorDelegate.isDefaultJndiEnvironmentAvailable()Z です

そして、私は本当に何をすべきかわかりません...

4

1 に答える 1

8

ランタイムが 3.2 ではなく Spring 2.0 を読み取っている可能性が非常に高いです。Spring 2 ConfigurableWebApplicationContextを見てください。メソッドがありませんsetId(String)

jar/war ファイルをチェックして問題のデバッグを開始し、Spring のバージョンが重複しているかどうかを確認します。また、Web コンテナーのクラスパス (例: tomcat lib フォルダー) も確認してください。そこに Spring 2 jar があると、混乱を招く可能性があります

于 2013-07-11T12:45:40.750 に答える