2017-07-13 1 views
0

Résumé/QuestionComment configurer Eclipse pour travailler avec `ehcache`

J'ai roulé sur un projet qui utilise ehcache. Le projet est maven activé et quand je cours mvn clean install de cli tout se termine bien.

Le projet peut également être ouvert dans NetBeans et tout s'affiche correctement, cependant lorsque j'ouvre le projet dans Eclipse, je vois des erreurs liées à ehcache. Dans NetBeans, le fichier spring-cache.xml se trouve dans un dossier "Pages Web". Cela m'a fait penser que le projet eclipse peut ne pas être reconnu comme un projet web dynamique, cependant en suivant les instructions ici: https://www.mkyong.com/java/how-to-convert-java-project-to-web-project-in-eclipse/ J'ai pu vérifier que le projet est bien configuré pour supporter Dynamic Web Module, Java et JavaScript.

J'ai également ouvert le projet dans IntelliJ et je n'ai vu aucun problème avec spring-cache.xml.

Je n'ai pas non plus trouvé de documentation liée à cette version de ehcache sur http://www.ehcache.org/documentation/ mais le fait que les choses fonctionnent dans NetBeans, IntelliJ et via mvn clean install me fait penser à ma configuration eclipse. Pensées?

Plus de détails:

Les erreurs que je vois dans Eclipse sont:

Multiple annotations found at this line: 
- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'ehcache:annotation-driven'. 
- schema_reference.4: Failed to read schema document 'http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring-1.1.xsd, because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>. 

enter image description here

Et

cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'ehcache:config'. 

enter image description here

Ma dépendance Maven ressemble à:

<dependency> 
    <groupId>com.googlecode.ehcache-spring-annotations</groupId> 
    <artifactId>ehcache-spring-annotations</artifactId> 
    <version>1.2.0</version> 
</dependency> 

qui correspond à ce qu'elle devrait être, sur la base: https://mvnrepository.com/artifact/com.googlecode.ehcache-spring-annotations/ehcache-spring-annotations/1.2.0

Mon fichier printemps-cache.xml ressemble:

<?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:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring" 
     xsi:schemaLocation=" 
       http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
       http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring 
       http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd"> 

    <ehcache:annotation-driven /> 
    <ehcache:config cache-manager="cacheManager"> 
     <ehcache:evict-expired-elements interval="60" /> 
    </ehcache:config> 
    <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> 
     <property name="configLocation" value="${ehcache.config.location}"/> 
    </bean> 

</beans> 

Répondre

0

Ressemble Les versions actuelles de NetBeans et IntelliJ ne sont pas aussi strictes pour vérifier les choses qu'éclipse. :) Ce qui suit est ce que j'ai découvert.

De ehcache with Spring. google code xsd file not found J'ai découvert que l'erreur supérieure était liée au fait que le xsd n'est plus hébergé à l'URL fournie. En faisant quelques références, j'ai trouvé une référence à la version sur github à: https://raw.githubusercontent.com/agentgt/ehcache-spring-annotations/master/core/src/main/resources/com/googlecode/ehcache/annotations/ehcache-spring-1.2.xsd en changeant ma schemalocation xsi du bas à l'adresse ci-dessus, cela a résolu le problème dans eclipse.

Les questions de débordement de pile fait référence, fournit également un lien vers l'archive de code google: https://code.google.com/archive/p/ehcache-spring-annotations/source/default/source

Si vous téléchargez le zip, vous pouvez trouver le xsd offical dans le zip à: /schema/ehcache-spring/ehcache-spring-1.2.xsd (il a aussi ehcache-spring-1.0.xsd et ehcache-spring1.1.xsd au cas où quelqu'un d'autre a des problèmes avec des versions plus anciennes).

J'ai trouvé un moyen de référencer le fichier de schéma local ici: How to reference a local XML Schema file correctly?

Je vais poser une question sur la façon de faire référence à partir d'un chemin relatif du projet, nous avons les deux fenêtres et les développeurs mac sur ce projet. Si cela vous est utile, les détails seront ici: How to Reference Local XSD File By Relative Path