1

Spring セキュリティ 3.0 を使用するアプリケーションを Spring セキュリティ 3.1 に移行しています。

正しくないスキーマが参照されているというエラーが発生しています。

SEVERE: Exception sending context initialized event to listener instance of class    
org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration    
problem: You must use a 3.0 schema with Spring Security 3.0.(2.0 or 3.1 versions are not  
valid) Please update your schema declarations to the 3.0.3 schema (spring-security- 
3.0.3.xsd).
Offending resource: ServletContext resource [/WEB-INF/security-context.xml]

/lib を見ると、3.1 バージョンの jar ファイルが 3.0 バージョンとして複製されていることがわかります。これが上記のエラーの原因であると思われます。

Eclipse Maven プラグインを使用して pom.xml の依存関係ツリーを見ると、以前のバージョンがどこで参照されているかがわかります (たとえば、spring-security-acl はいくつかの 3.0 jar に依存しています) が、「競合のために除外」とマークされています。と...'。それは、ビルドされた war ファイルからそれらを除外する必要があるという意味ではありませんか?

pom のルートにあるこれらのファイルの 3.1 バージョンに明示的に名前を付けようとしましたが、古いバージョンはまだ含まれています。

4

2 に答える 2

1

問題のあるリソース: ServletContext リソース [/WEB-INF/security-context.xml]

実際には、メッセージはsecurity-context.xmlspring-security-3.1 と互換性のないスキーマ/宣言を使用していることを示しています。メッセージは、代わりに 3.0 バージョンのライブラリを使用するように要求しています。確認して更新し、再試行することをお勧めします。

于 2012-07-19T05:24:38.653 に答える
0

何が起こっていたのかはまだわかりませんが、Eclipse で同じ pom ファイルとソース ファイルを使用して新しいプロジェクトを作成しようとしたところ、プロジェクトは自動的に動作するようになりました。

于 2012-07-23T13:14:05.073 に答える