java – 使用spring数据存储库和mongo db设置spring应用程序

前端之家收集整理的这篇文章主要介绍了java – 使用spring数据存储库和mongo db设置spring应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在application-context.xml中定义mongo存储库时,我遇到了一个问题

以下是我在xml中得到的错误

Error occured processing XML tried to access method org.springframework.context.annotation.AnnotationConfigUtils.processCommonDefinitionAnnotations
(Lorg/springframework/beans/factory/annotation/AnnotatedBeanDefinition;)V from class org.springframework.data.repository.config.RepositoryComponentProvider'. See Error Log for more details servlet-context.xml /master/WebContent/WEB-INF/config line 24 Spring Beans Problem

我附上了env的截图供参考.
我正在使用eclipse Kepler版本和pom属性File就是这样的

Spring数据公共版本是1.7
spring data mongo db 1.4版.
当我打开上下文xml时,我在eclipse项目中看到了错误.

有趣的是,我有另一个项目运作良好.唯一的区别是它没有弹簧MVC和杰克逊二进制文件,否则它的类似项目.

异常堆栈跟踪:

!ENTRY org.springframework.ide.eclipse.beans.core 1 0 2014-03-01
00:04:11.839 !MESSAGE Error occured processing
‘/master/WebContent/WEB-INF/config/servlet-context.xml’ !STACK 0
java.lang.IllegalAccessError: tried to access method
org.springframework.context.annotation.AnnotationConfigUtils.processCommonDefinitionAnnotations(Lorg/springframework/beans/factory/annotation/AnnotatedBeanDefinition;)V
from class
org.springframework.data.repository.config.RepositoryComponentProvider
at
org.springframework.data.repository.config.RepositoryComponentProvider.findCandidateComponents(RepositoryComponentProvider.java:121)
at
org.springframework.data.repository.config.RepositoryConfigurationSourceSupport.getCandidates(RepositoryConfigurationSourceSupport.java:69)
at
org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport.getRepositoryConfigurations(RepositoryConfigurationExtensionSupport.java:54)
at
org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn(RepositoryConfigurationDelegate.java:88)
at
org.springframework.data.repository.config.RepositoryBeanDefinitionParser.parse(RepositoryBeanDefinitionParser.java:67)
at
org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
at
org.springframework.ide.eclipse.beans.core.internal.model.namespaces.DelegatingNamespaceHandlerResolver$ElementTrackingNamespaceHandler.parse(DelegatingNamespaceHandlerResolver.java:177)
at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1427)
at
org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ErrorSuppressingBeanDefinitionParserDelegate.parseCustomElement(BeansConfig.java:1400)
at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1417)
at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:187)
at
org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ToolingFriendlyBeanDefinitionDocumentReader.doRegisterBeanDefinitions(BeansConfig.java:1330)
at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:110)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:494)
at
org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$2.registerBeanDefinitions(BeansConfig.java:402)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:335)
at
org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$2.loadBeanDefinitions(BeansConfig.java:388)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
at

servlet context.xml

错误见于以下行..

最佳答案
在我的情况下,它是导致问题的spring数据jpa版本.我没有使用spring数据mongodb而是使用spring数据jpa.我今天开始使用最新版本(spring-framework 4.0.2.RELEASE,spring-data-jpa 1.5.0.RELEASE).我确保maven的所有传递依赖(从spring端和spring数据端)都是最新版本但没有锁.

在这个帖子之后,尝试将spring版本降级到4.0.0.RELEASE但没有运气.我甚至在我的工作区内从spring-context-4.0.2.RELEASE.jar(以及spring-context-4.0.0.RELEASE.jar)中探索了org.springframework.context.annotation.AnnotationConfigUtils类,并确认了processCommonDefinitionAnnotations是一个公共方法,因此IllegalAccessError不能成为这些jar产生的问题.

最后,我将我的spring-data-jpa从1.5.0.RELEASE降级到1.4.4.RELEASE,并且所有问题都在maven更新中得到解决.我正在使用STS 3.4,如果它可以帮助任何人.

由于这是我在google搜索错误时发现的第一篇文章,因此想到将其发布在此处,以便其他遇到相同问题的人可以通过此提示解决问题.我在https://jira.springsource.org/browse/DATAJPA-490打开了错误报告

@Oliver,尝试了依赖管理建议,但没有运气.我还根据请求将依赖项列表输出添加错误报告中.

猜你在找的Spring相关文章