1

Spring webapp を作成しました。アプリは tomcat と CloudFoundry で動作していますが、JBoss (OpenShift Express) でアプリを起動しようとするとエラーが発生します。

起動すると、次のエラーが表示されます。

2012/04/10 11:11:58,967 ERROR [org.springframework.web.context.ContextLoader] (MSC service thread 1-1) Context initialization failed: org.springframework.beans.BeanInstantiationException: 
Could not instantiate bean class [org.springframework.web.context.support.XmlWebApplicationContext]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: 
org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:162) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:104) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_22]
Caused by: java.lang.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V
        at org.springframework.core.convert.support.DefaultConversionService.addScalarConverters(DefaultConversionService.java:62) [org.springframework.core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.core.convert.support.DefaultConversionService.addDefaultConverters(DefaultConversionService.java:53) [org.springframework.core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.core.convert.support.DefaultConversionService.<init>(DefaultConversionService.java:42) [org.springframework.core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
... 12 more

私はそれが JAR の競合/重複であると想定し、依存関係の競合について Maven のセットアップを確認しましたが、Eclipse Maven 依存関係階層の推移的な依存関係を確認したので、3.1.1 を除くすべてのバージョンを明確に除外しています (問題のこのクラスはv3.0 で導入されたと思います) - そしてそれは と の両方Spring-coreですorg.springframework.core)

私が見逃している可能性のあるアイデアはありますか?

4

1 に答える 1

1

わかりました、私は問題を発見しました。

EclipseでM2Eclipse Mavenプラグインを使用して、spring-core依存関係を除外しました(これにより、推移的な依存関係であるすべての依存関係からライブラリが除外されました)org.springframework.core。代わりにライブラリを使用していたので、これで問題ないと思いました。

ただし、最初のレベルの推移的な依存関係からそれらを除外しただけのようで、ビルドされた WAR ファイルではまだプルダウンされていましたspring-core.3.0.3(Redhat の OpenShift プラットフォームにデプロイしているため、以前はこれを行ったことがなく、少し手間がかかりました)。サーバーにscpして構築された戦争を取得できるように、物事をセットアップします)

依存関係を明示的に宣言し、spring-core.3.1.1他のすべてのものを除外して、最新のものを確実にプルダウンすることで、この問題を修正しました。

M2Eclipseプラグインの「解決された依存関係」ビューが使用されているライブラリのビューを信じていないというのがモラルだと思います。

于 2012-04-10T20:25:13.550 に答える