Spring 3.0-XMLスキーマ名前空間のSpring NamespaceHandlerが見つからない[http://www.springframework.org/schema/security]


179

これの原因は何でしょうか?

XMLスキーマ名前空間のSpring NamespaceHandlerが見つかりません[ http://www.springframework.org/schema/security]

org.springframework.web.context.ContextLoader initWebApplicationContext: Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]
Offending resource: ServletContext resource [/WEB-INF/applicationContext.xml]

これは私のapplicationContext.xmlです:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/security
        http://www.springframework.org/schema/security/spring-security-3.0.xsd">
...
</beans:beans>

私のpom.xmlには次のものがあります:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>      
    <version>3.0.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-openid</artifactId>
    <version>3.0.1.RELEASE</version>
</dependency>

春のピザショップチュートリアル
Rob Grantを

これは完全なpom.xmlですか?それはおそらく瓶が欠落しているからです。
Marco Schoolenberg、

回答:


286

追加のMaven依存関係を追加する必要がありました。

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>3.0.1.RELEASE</version>
    </dependency>

3
+1私の問題を解決するため。Springの
Rydell

素敵なリンク。数か月前にも使用できたはずです。
テイラーリース

12
ベーコンは再びSOによって救われました!
Andrew Swan

spring-security-casjarファイルのみを使用する場合も、同様の解決策が当てはまります。
Ryan Ransford 2013年

問題のある人にはこのリンクをお勧めしUnable to locate Spring NamespaceHandler for XML schema namespace [xxxxx]ます。過去にも同様の問題があり、それが非常に役立ちました。
コッタ

18

アプリケーションをデプロイしようとしたときに、同じエラーメッセージが表示されました。Springでは、セキュリティ構成xmlはapplicationContext.xmlとは異なるものにすることができ、通常はWEB-INFフォルダー内のapplicationContext-security.xmlです。適用される変更は、web.xml用です。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/applicationContext.xml
        /WEB-INF/applicationContext-security.xml
    </param-value>
</context-param>

そして、applicationContext.xmlは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">

    <http auto-config='true'>
        <intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
        <intercept-url pattern="/**" access="ROLE_USER" />
        <form-login login-page='login.jsp'/>
    </http>

</beans:beans>

これらの変更を行った後でも、名前空間エラーが存在します。これを取り除くには、次のjarファイルをWEB-INF / libに追加してから、ライブラリに追加します。

  • spring-security-acl-3.1.0.M2.jar
  • spring-security-config-3.1.0.M2.jar
  • spring-security-core-3.1.0.M2.jar
  • spring-security-taglibs-3.1.0.M2.jar
  • spring-security-web-3.1.0.M2.jar

Springを実行するには、Mavenを使用する必要があります。そして、あなたがしぶしぶそれだけをするとき、それはまだ働きません!誰か、どこかで一生懸命笑っています...この答えは私の欲求不満を少し軽減するのに役立ちました。
Arne Evertsson、2013

12

私はしばらくこれに苦労しましたが、これらの答えはどれも役に立ちませんでした。user64141からのコメントのおかげで、spring.handlersファイルに問題があることに気付きました。

Maven用のShadeプラグインを使用してファットjarを生成しています。すべてのspring.handlers(およびspring.schemas)ファイルは、各Spring依存関係によって上書きされていました。

Mavenのサイトでは、この正確な問題と、代わりにファイルを一緒に追加して問題を解決する方法について説明しています。

http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#AppendingTransformer



6

解決策は間違いなく「spring-security-config」で、WEB-INF / libにはありません。

Mavenを使用したEclipseでのプロジェクトでは、Mavenの依存関係のすべてがWEB-INF / libにコピーされているわけではないことがわかりました。プロジェクト->プロパティ->デプロイメントアセンブリを見ると、一部のjarのみがコピーされていました。

これを修正するために、「追加」、「Javaビルドパス全体」、そして最後に「Maven依存関係」をクリックしました。

私はこれを探すために過去1時間SOとWebを検索してきました。



3

@James Jithin-xsi:schemaLocationに2つの異なるバージョンのBeanとセキュリティスキーマがある場合にも、このような例外が発生する可能性があります。これは、貼り付けたスニペットの場合です。

xsi:schemaLocation="http://www.springframework.org/schema/beans   
 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
 http://www.springframework.org/schema/security  
 http://www.springframework.org/schema/security/spring-security-3.1.xsd"

私の場合、両方を3.1に変更すると問題が解決しました


私はそれをうまく動作させることができました:http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/security/spring-security-3.2.xsd 私の場合、「spring-security-config」jarがありませんでした。
Ithar

このコメントに同意します。この原因による私の問題がありました。
DolphinJava

2

私がしたこと:

      <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>3.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>3.2.5.RELEASE</version>
        </dependency>

そして

xsi:schemaLocation="
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-3.2.xsd
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">

完全に動作します。もっとBaeldung


0

pomにすべての依存関係がある場合は、次のことを試してください
。1.ダウンロードしたすべてのjarを、「org-> springframework」のmavenリポジトリフォルダーから削除します。2
. mavenクリーンビルドを作成します。


0

私は今日、非常によく似た問題に遭遇しました。なんらかの理由でIntelliJ IDEA、アプリケーションのデプロイ中にSpring Security jarファイルが含まれていません。私はここのポスターの大多数に同意するべきだと思います。


0

Virgoへのデプロイ中にこのエラーが発生しました。解決策はこれをバンドルのインポートに追加することでした:

org.springframework.transaction.config;version="[3.1,3.2)",

META-INFの下のSpring jarに、spring.schemasおよびspring.handlersセクションがあり、それらが指すクラス(この場合はorg.springframework.transaction.config.TxNamespaceHandler)をインポートする必要があることに気付きました。



0

数分前に同じ問題が発生したため、展開アセンブリに「Maven depencendies」ライブラリがありませんでした。Eclipseの「Webデプロイメントアセンブリ」セクションで追加しました


0

依存関係を追加しても問題が解決しない場合は、WARアーカイブを再度作成します。私の場合、私はsecurity-webとsecurity-conf jarのない古いWARファイルを使用しました


0

pom.xmlファイルに次の依存関係を追加します。IntelliJを使用している場合は、同じjarをWEB-INF-> libフォルダーに追加します。パスはプロジェクト構造-> Atrifacts->使用可能な要素ペインからjarを選択し、ダブルクリックします。クリック。それぞれのフォルダに追加されます

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>3.0.1.RELEASE</version>
</dependency>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.