2012-12-03 19 views
12

Ho un progetto Maven-primavera in Eclipse e ho questo messaggio di errore fastidioso in uno dei miei contesti di primavera:Errore nel contesto schema dell'applicazione primavera

file di riferimento contiene errori (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). Per ulteriori informazioni, fare clic destro sul messaggio nella vista Problemi e selezionare "Mostra Dettagli ..."

Lo spettacolo setails porta a questo:

enter image description here

I usando la primavera-dati- jpa 1.2.0.RELEASE e il resto dei miei vasi a molla sono 3.1.3.RELEASE. Riguardo a spring-data-commons-core - Non ho nemmeno una dipendenza da questo jar nel mio pom ma posso vederlo nel mio repository m2 insieme a spring-data-commons-parent ed entrambi della versione 1.4.0.RELEASE , Non so perché (forse quelli fanno parte di spring-data-jpa?).

applicazione dello schema contesto mio:

<?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"> 

Non capisco il motivo per cui continuo a ricevere questo errore. In pratica non ha alcun effetto cosa così mai, L'applicazione compila, implementato e funziona bene, si tratta solo di questo marchio rosso di errore fastidioso in Eclipse che mi fa impazzire :)

risposta

11

ho risolto facendo 3 cose:

  1. Aggiunto questo repository al mio POM:

    <repository> 
        <id>spring-milestone</id> 
        <name>Spring Maven MILESTONE Repository</name> 
        <url>http://repo.springsource.org/libs-milestone</url> 
    </repository> 
    
  2. sto usando questa versione di primavera-JPA:

    <dependency> 
        <groupId>org.springframework.data</groupId> 
        <artifactId>spring-data-jpa</artifactId> 
        <version>1.2.0.RELEASE</version> 
    </dependency> 
    
  3. ho tolto le versioni XSD da mio contesto (anche se non sono sicuro che è necessario):

    <?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"> 
    

Spero che questo aiuta.

+0

Dude funziona come un fascino, anche per mongodb! (con diversi trucchi). L'ho aggiunto come risposta separata, grazie! – tugcem

+0

Felice di sentirlo :) – forhas

3

Recentemente ho avuto stesso problema con JPA-1.3

Niente ha funzionato fino a quando ho usato esplicito collegamento tools.xsd

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

come questo:

<?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 
     "> 
+0

Stesso problema con il contesto Spring 4.2. e risolto. È interessante notare che i link http://www.springframework.org/schema/context/spring-context-4.2.xsd allo strumento spring 4.1 – borjab

6

Quello che ho fatto con la primavera -data-jpa-1.3 stava aggiungendo una versione a xsd e l'ha ridotta a 1.2. Quindi il messaggio di errore scompare. Mi piace questo

<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"> 

Sembra che sia stato corretto per 1.2 ma poi riappare in 1.3.

+0

+1 utilizzano lo schema precedente anche per me. – elias

3

Anche quello che @forhas e @HRgiger ha funzionato per me.Sto usando spring-data-mongodb invece di jpa.

Tuttavia, per i collegamenti mongodb, non è necessario rimuovere la versione di riferimento xsd mongodb, è sufficiente mantenerla con la versione: http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd. Le versioni context e beans devono essere rimosse.

16

Recentemente ho riscontrato un problema simile nell'ultimo Eclipse (Kepler) e l'ho risolto disabilitando l'opzione "Rispetta tutte le posizioni dello schema XML" in Preferenze> XML> File XML> Convalida. Disabilita la convalida per i riferimenti agli stessi spazi dei nomi che fanno riferimento a percorsi di schemi diversi, prendendo solo il primo trovato generalmente nel file XML in fase di convalida. Questa opzione proviene dalla libreria Xerces.

WTP Doc: http://www.eclipse.org/webtools/releases/3.1.0/newandnoteworthy/sourceediting.php

Xerces Doc: http://xerces.apache.org/xerces2-j/features.html#honour-all-schemaLocations

+0

ha funzionato anche per me in Eclipse 3.7 – Brian

+0

funziona per Eclipse mars con il progetto Spring incasinato –

4

Recentemente ho avuto stesso problema con Spring 4.0.

È stato causato da una collisione nei nomi da spring-beans-4.0.xsd e spring-context-4.0.xsd. Apertura spring-context-4.0.xsd si può vedere che spring-beans-4.0.xsd viene importato come segue:

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

collisioni tratta di nome fanno Eclipse lamentarsi "... Uno schema non può contenere due componenti globali con lo stesso nome ..."

Un aspetto degno di nota è che non avevo questo problema con Eclipse Kepler SR2 ma con Eclipse Luna SR1, confrontando entrambe le preferenze sulla convalida XML, erano le stesse.

È stato risolto rimuovendo molla-context-4.0.xsd da xsi: schemaLocation:

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

Dopo questo tutto ha funzionato come previsto.

+1

Ma non risolverebbe il problema se si utilizza Devo ancora capire il problema. –

2

A volte il file xml di configurazione di primavera non funziona correttamente all'apertura successiva di eclissi.

Mostra errore nel file xml causato dalla definizione dello schema, non importa riaprire eclissi o ripulire progetto non funzionano entrambi.

Ma provate questo!

Fare clic con il pulsante destro del mouse sul file xml di configurazione di primavera e selezionare validate.

Dopo un po ', l'errore scompare ed eclissi indica che non ci sono errori su questo file.

Che scherzo ...

+0

Questo l'ha fatto per me, grazie. – Bevor

Problemi correlati