摘要/问题
我参与了一个使用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>
问题摘要:
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的解决方案解决了这个缺点。
看起来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.xsd
和ehcache-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