18

Eclipse に maven-spring プロジェクトがあり、Spring コンテキストの 1 つでこの厄介なエラー メッセージが表示されます。

参照ファイルにエラーがあります (jar:file:/M2_HOME/repository/org/springframework/spring-beans/3.1.2.RELEASE/spring-beans-3.1.2.RELEASE.jar!/org/springframework/beans/factory/xml /spring-tool-3.1.xsd)。詳細については、問題ビューでメッセージを右クリックし、[詳細を表示...] を選択します。

show setails はこれにつながります。

ここに画像の説明を入力

私はspring-data-jpa 1.2.0.RELEASEを使用しており、残りのSpring jarは3.1.3.RELEASEです。spring-data-commons-core について - pom でこの jar に依存することさえありませんが、m2 リポジトリで spring-data-commons-parent とバージョン 1.4.0.RELEASE の両方と一緒に見ることができます、理由はわかりません(おそらく、それらはspring-data-jpaの一部ですか?)。

私のアプリケーションコンテキストスキーマ:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="
   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
   http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd">

なぜこのエラーが発生し続けるのかわかりません。基本的には何の影響もありません。アプリはコンパイル、デプロイ、実行されます。Eclipse のこの厄介な赤いエラー マークだけが私を夢中にさせます :)

4

16 に答える 16

14

私は3つのことをすることによってそれを解決しました:

  1. このリポジトリを私のPOMに追加しました:

    <repository>
        <id>spring-milestone</id>
        <name>Spring Maven MILESTONE Repository</name>
        <url>http://repo.springsource.org/libs-milestone</url>
    </repository>
    
  2. このバージョンのspring-jpaを使用しています:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.2.0.RELEASE</version>
    </dependency>
    
  3. コンテキストからxsdバージョンを削除しました(必要かどうかはわかりませんが):

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

これがお役に立てば幸いです。

于 2012-12-06T08:31:52.913 に答える
11

次の Eclipse を開いたときに、春の構成 xml ファイルがうまく機能しないことがあります。

Eclipse を再度開いても、プロジェクトをクリーンアップしても、スキーマ定義が原因で xml ファイルにエラーが表示されます。

しかし、これを試してみてください!

spring config xml ファイルを右クリックし、 を選択しますvalidate

しばらくするとエラーは消え、Eclipse はこのファイルにエラーがないことを通知します。

なんて冗談...

于 2016-10-03T07:44:56.067 に答える
8

spring-data-jpa-1.3 で行ったことは、xsd にバージョンを追加して 1.2 に下げたことです。その後、エラー メッセージは消えます。このような

<beans
        xmlns="http://www.springframework.org/schema/beans"
        ...
        xmlns:jpa="http://www.springframework.org/schema/data/jpa"
        xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    ...
    http://www.springframework.org/schema/data/jpa
    http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd">

1.2 で修正されたようですが、1.3 で再び表示されます。

于 2013-02-22T11:20:19.947 に答える
5

最近、Spring 4.0 で同じ問題が発生しました。

spring-beans-4.0.xsdとの名前の衝突が原因でしたspring-context-4.0.xsd。開くと、次のようにインポートされspring-context-4.0.xsdていることがわかります。spring-beans-4.0.xsd

<xsd:import namespace="http://www.springframework.org/schema/beans"  
schemaLocation="http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"/>

これらの名前の衝突により、Eclipse は「...スキーマに同じ名前の 2 つのグローバル コンポーネントを含めることはできません...」と文句を言います。

注目すべき点は、この問題は Eclipse Kepler SR2 ではなく Eclipse Luna SR1 で発生したことです。XML 検証に関する両方の設定を比較すると、それらは同じでした。

xsi:schemaLocation 属性から spring-context-4.0.xsd を削除することで解決されました。

http://www.springframework.org/schema/context   
http://www.springframework.org/schema/context/spring-context-4.0.xsd

この後、すべてが期待どおりに機能しました。

于 2015-01-13T03:31:57.413 に答える
4

最近、JPA-1.3で同じ問題が発生しました

明示的なtools.xsdリンクを使用するまで何も機能しませんでした

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

このような:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
        http://www.springframework.org/schema/jdbc 
        http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
        http://www.springframework.org/schema/data/jpa
        http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
        http://www.springframework.org/schema/tool
        http://www.springframework.org/schema/tool/spring-tool-3.2.xsd
        ">
于 2013-02-17T04:30:31.027 に答える