当前位置: 首页 > 知识库问答 >
问题:

如何配置Eclipse使用ehcache

阎功
2023-03-14

摘要/问题

我参与了一个使用ehcache的项目。该项目启用了maven,当我从cli运行mvn clean install时,一切都很顺利。

该项目也可以在NetBeans中打开,所有内容都可以正常显示,但是当我在eclipse中打开该项目时,我看到一些与ehcache相关的错误。在spring缓存中。xml位于“网页”文件夹下。这让我觉得eclipse项目可能不会被认为是一个动态web项目,但请遵循以下说明:https://www.mkyong.com/java/how-to-convert-java-project-to-web-project-in-eclipse/我能够验证该项目是否确实设置为支持动态Web模块、Java和JavaScript。

我也打开了IntelliJ的项目,也没有看到任何问题与spring-cache.xml.

我也没有在上找到与此版本的ehcache相关的文档http://www.ehcache.org/documentation/但事实上,在NetBeans、IntelliJ和viamvn clean install中运行的东西让我觉得这是我的eclipse设置。思想?

更多详情:

我在日食中看到的错误是:

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

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

我对maven的依赖性看起来像:

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

它应该是什么,基于:https://mvnrepository.com/artifact/com.googlecode.ehcache-spring-annotations/ehcache-spring-annotations/1.2.0

我的spring-cache.xml文件看起来像:

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

共有2个答案

魏彦
2023-03-14

问题摘要:

XSI模式位置参考:

http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd

在eclipse中导致验证问题,在命令行maven上没有问题。

将ref替换为:

https://raw.githubusercontent.com/agentgt/ehcache-spring-annotations/master/core/src/main/resources/com/googlecode/ehcache/annotations/ehcache-spring-1.1.xsd

解决eclipse中的问题。在maven中,如果你没有连接到互联网,saxparser会抱怨。通过放置一个代理ref:-Dhttp。proxyHost=[proxyHost]-Dhttp。proxyPort=[proxyPort]-Dhttps。proxyHost=[proxyHost]-Dhttps。proxyPort=[proxyPort]maven构建成功。。。。

我研究了这种行为上的差异:在ehacache-Spring jar中,ehcache-spring-annotations-1.1.2.jar,存在一个META-INF/spring.schemas文件。

该文件的内容:http\://ehcache-spring注释。谷歌代码。com/svn/schema/ehcache-spring/ehcache-spring-1.0。xsd=com/googlecode/ehcache/annotations/ehcache-spring-1.0。xsd http\://ehcache spring注释。谷歌代码。com/svn/schema/ehcache-spring/ehcache-spring-1.1。xsd=com/googlecode/ehcache/annotations/ehcache-spring-1.1。xsd

cmdline maven使用此内容(并在jar中查找xsd)。日食则不然。

我使用的解决方案:转到eclipse首选项,XML-

地点:https://raw.githubusercontent.com/agentgt/ehcache-spring-annotations/master/core/src/main/resources/com/googlecode/ehcache/annotations/ehcache-spring-1.1.xsd

密钥类型:公共id

关键:http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd

替代网页地址:https://raw.githubusercontent.com/agentgt/ehcache-spring-annotations/master/core/src/main/resources/com/googlecode/ehcache/annotations/ehcache-spring-1.1.xsd

重新验证Spring上下文文件解决了我的eclipse工作区中的问题。

我更喜欢这个解决方案,因为这是eclipse的一个缺点,我用特定于eclipse的解决方案解决了这个缺点。

长孙鸿
2023-03-14

看起来NetBeans和IntelliJ的当前版本在检查事物方面不如eclipse严格。:)以下是我发现的。

从ehcache到Spring。google code xsd file not found我发现顶部错误与xsd不再位于提供的url上有关。

通过谷歌搜索,我在github上找到了该版本的参考:https://raw.githubusercontent.com/agentgt/ehcache-spring-annotations/master/core/src/main/resources/com/googlecode/ehcache/annotations/ehcache-spring-1.2.xsd通过将我的底部xsi schemalocation更改为上面的url,它解决了eclipse中的问题。

参考的堆栈溢出问题还提供了指向以下google代码存档的链接:https://code.google.com/archive/p/ehcache-spring-annotations/source/default/source

如果您下载了zip,那么就可以在zip中找到官方xsd,网址为:/schema/ehcache-spring/ehcache-spring-1.2。xsd(它还有ehcache-spring-1.0.xsdehcache-spring1.1.xsd,以防其他人对早期版本有问题)。

我在这里找到了引用本地模式文件的方法:如何正确引用本地XML模式文件?

我将发布一个关于如何从项目的相对路径引用它的问题,因为我们在这个项目上有windows和mac开发人员。如果这对您有用,详细信息将在这里:如何通过相对路径引用本地XSD文件

 类似资料:
  • 我在Guice3.0下载的任何地方都没有看到Javadoc jar。 是否有一个包含Javadocs的正式jar可用?或者,除了解压缩源文件并将其指向解压缩的文件夹之外,是否还有其他方法将Eclipse指向Javadocs?

  • 我想开始使用AngularJs和Java Spring进行开发。我使用Eclipse作为IDE。我想将Eclipse配置为使这些框架无缝工作。 我知道我可能要求太多了,但相信我,我已经做了很多研究,你们是我最后的选择。任何帮助都将不胜感激。

  • 我正在使用Eclipse Juno并试图为我的项目配置版本控制。我安装了Subversive并试图配置我的SVN存储库,但是当我转到Eclipse->Preferences->SVN时,没有“存储库”选项卡,正如文档所建议的--Eclipse Subversive。只有“常规”、“SVN连接器”、“项目结构”、“视图设置”和“错误报告”。 因此,当我右键单击我的项目并选择“Team”时,没有“提交

  • 问题内容: 当我将struts.xml放入web-inf时显示错误......当我将src文件夹放入时,它工作正常。(在web- inf中为applicationcontext.xml) 当我将applicationcontext.xml放在src文件夹中时(在(src文件夹或src / resources)中为struts.xml).......这就是说无法在web-inf文件夹中找到appli

  • 问题内容: 我试图在Eclipse中更新我的jre版本,我将jre 8添加到了已安装的JRE中,并选中了他。当我单击确定时,它给我一个错误: 它仅在我尝试使用JRE 8时发生。 有人知道如何解决这个问题吗? 我使用Indigo Eclipse。版本:Service Release 2。 问题答案: 创建新的工作区。创建新的Java项目,然后选择jvm8作为jvm。在现有项目中更改虚拟机非常困难,并

  • 我用Maven在eclipse Luna中配置lombok。注释已正确添加,但未生成getter和setter。 eclipse.ini