1

At work we use the Spring (or rather Google) ehcache manager. Oddly, I'm getting an error in Spring STS that my coworkers, also using Spring STS and using the exact same code, do not get. The following line in my pom.xml file is marked as an error (or a "problem" according to Spring STS).

<ehcache:annotation-driven cache-manager="ehCacheManager" />

The reason given is this:

The matching wildcard is strict, but no declaration can be found for element 'ehcache:annotation-driven'.

In case it might be helpful, here are the schema declarations at the top of my pom.xml file.

<beans xmlns="http://www.springframework.org/schema/beans"
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"
xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring"
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-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/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
    http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.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">

Both Spring STS and my specific project/workspace are using Java 8 as a compiler and runtime environment. So I don't think that's an issue. I also did a project refresh, a Maven update, and a mvn clean install.

I did some research and looked at this question as well as this one. The conclusion seems to be that one of my schemas is no longer hosted and so it cannot figure out what <ehcache:annotation-driven cache-manager="ehCacheManager"/> means. It seems that the http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd schema is missing, which can be confirmed if you simply try to visit the URL.

The comments on this question suggest that I avoid the Google ehcache and use the Spring one instead. How should I go about this? Ideally I would like to avoid changing the schemas that we use, since after all it works for my co-workers. But maybe that's because they were able to pull from the Google ehcache schema while it was still being hosted. Is it really necessary to change from the Google schema to the Spring schema, and if so how should I implement this in my POM file?

Stephane Nicoll
  • 31,977
  • 9
  • 97
  • 89
ktm5124
  • 11,861
  • 21
  • 74
  • 119

1 Answers1

1

Try this

<cache:annotation-driven cache-manager="ehCacheManager" />
Suraj Rao
  • 29,388
  • 11
  • 94
  • 103
  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Dec 30 '21 at 05:45