2017-05-30 73 views
0

我的任務是將Spring數據庫,特別是其Spring Repository實現,併入到使用Ant和Java 1.6構建的遺留Java Web應用程序中。我收到有關與Spring Data JPA命名空間(下面的堆棧跟蹤)相關的「RepositoryConfigurationExtension」的錯誤。我用下面的函數庫的依賴:Spring Data JPA - RepositoryConfigurationExtension中的錯誤

<pathelement location="${compile.lib}/spring-core-4.2.9.RELEASE.jar"/> 
    <pathelement location="${compile.lib}/spring-data-commons-1.12.10.RELEASE.jar"/> 
    <pathelement location="${compile.lib}/spring-orm-4.2.9.RELEASE.jar"/> 
    <pathelement location="${compile.lib}/spring-aop-4.2.9.RELEASE.jar"/> 
    <pathelement location="${compile.lib}/spring-aspects-4.2.9.RELEASE.jar"/> 
    <pathelement location="${compile.lib}/spring-jdbc-4.2.9.RELEASE.jar"/> 
    <pathelement location="${compile.lib}/spring-beans-4.2.9.RELEASE.jar"/> 
    <pathelement location="${compile.lib}/spring-data-jpa-1.10.10.RELEASE.jar"/> 

我然後配置下面的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:context="http://www.springframework.org/schema/context" 
     xmlns:jpa="http://www.springframework.org/schema/data/jpa" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-4.2.xsd 
    http://www.springframework.org/schema/data/jpa 
    http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"> 

    <context:component-scan base-package="com.cc.spring.beans.persistence, com.cc.spring.beans.persistence.repository"/> 
    <jpa:repositories base-package="com.cc.spring.beans.persistence.repository"/> 

</beans> 

這是我收到的堆棧跟蹤:

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/spring/beans/cycpersistence-beans.xml]; nested exception is org.springframework.beans.FatalBeanException: Invalid NamespaceHandler class [org.springframework.data.jpa.repository.config.JpaRepositoryNameSpaceHandler] for namespace [http://www.springframework.org/schema/data/jpa]: problem with handler class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/repository/config/RepositoryConfigurationExtension 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) 
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124) 
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4389) 
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:313) 
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:145) 
    at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461) 
    at org.jboss.web.deployers.WebModule.startModule(WebModule.java:122) 
    at org.jboss.web.deployers.WebModule.start(WebModule.java:97) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668) 
    at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) 
    at com.sun.proxy.$Proxy38.start(Unknown Source) 
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42) 
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37) 
    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) 
    at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) 
    at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) 
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
    at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:297) 
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652) 
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:826) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556) 
    at org.jboss.system.ServiceController.doChange(ServiceController.java:688) 
    at org.jboss.system.ServiceController.start(ServiceController.java:460) 
    at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163) 
    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99) 
    at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46) 
    at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) 
    at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55) 
    at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1454) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1172) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1193) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1225) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1113) 
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652) 
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:826) 
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556) 
    at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:789) 
    at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:699) 
    at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117) 
    at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70) 
    at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53) 
    at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:403) 
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652) 
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988) 
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:778) 
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:543) 
    at org.jboss.system.server.profileservice.repository.AbstractProfileService.registerProfile(AbstractProfileService.java:308) 
    at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:256) 
    at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) 
    at org.jboss.Main.boot(Main.java:229) 
    at org.jboss.Main$1.call(Main.java:561) 
    at org.jboss.Main$1.call(Main.java:557) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.lang.Thread.run(Thread.java:695) 

任何想法?我錯過了什麼嗎?我無法擺脫這個錯誤,並轉而實際測試Spring Repositories的合併。我很樂意在這一點上嘗試任何事情。先謝謝你!

P.S - 我看過類似的堆棧溢出問題,如getting error Invalid NamespaceHandler class org.springframework.data.jpa.repository.config.JpaRepositoryNameSpaceHandler,並按照他們的建議。不幸的是它沒有工作,這就是爲什麼我發佈我自己的問題。

爲了迴應Neil並提供了更多關於這個問題的見解,我在jar文件中附加了類的截圖,並確認它在類路徑中。

Spring RepositoryConfigurationExtension

+1

缺少的類'RepositoryConfigurationExtension'應該包含在'spring-data-commons-1.12.10.RELEASE.jar'中。你可以在運行時驗證這個jar是否在classpath上,例如打印出classpath?另外,請確認jar確實包含這個類。 –

+0

延斯,你能不能請這個作爲一個單獨的答案,所以我可以給你信貸的正確答案?編譯類路徑是正確的,但不是運行時類路徑。這是我第一次使用Jboss,並且我沒有意識到Ant構建文件沒有複製必要的.jar文件。 repositoryconfigurationextension錯誤不再存在:) – blkhatpersian

回答

1

的缺失類RepositoryConfigurationExtension應包含在spring-data-commons-1.12.10.RELEASE.jar。驗證此jar是否在運行時的類路徑上,例如打印出類路徑。另外,請確認jar確實包含這個類。

+0

謝謝Jens再次。我遇到了另一個與這個問題有關的障礙,如果你有機會,你能否看看這個問題?謝謝。 https://stackoverflow.com/questions/44335700/repositoryauditing-attributes-cannot-be-resolved-to-attribute-group-component – blkhatpersian