2012-10-24 16 views
6

मेरे पास वसंत डेटा जेपी 1.2.0.RELEASE के साथ वसंत 3.2.0.एम 2 सेटअप है।स्प्रिंग डेटा जेपीए @EnableJpaRepositories TypeNotPresentExceptionProxy

मेरे पास जावा कॉन्फ़िगरेशन भी है। यह मैं अपने रिपोजिटरी कॉन्फ़िगरेशन क्लास।

@Configuration 
@EnableJpaRepositories(basePackages = {"xxx.xxx.xxx.core.dao"}) 
@EnableTransactionManagement 
public class Repository { 

    @Bean 
    public DataSource dataSource() { 
     DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
     dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
     dataSource.setUrl("jdbc:mysql://localhost:3306/xxxx"); 
     dataSource.setUsername("xxxx"); 
     dataSource.setPassword("xxxx"); 

     return dataSource; 
    } 

    @Bean 
    public EntityManagerFactory entityManagerFactory() { 
     HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); 
     vendorAdapter.setGenerateDdl(true); 
     LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); 
     factory.setJpaVendorAdapter(vendorAdapter); 
     factory.setPackagesToScan("xx.xxxx.xxxx.xxxx.domain"); 
     factory.setDataSource(dataSource()); 
     factory.afterPropertiesSet(); 
     return factory.getObject(); 
    } 

    @Bean 
    public PlatformTransactionManager transactionManager() { 
     JpaTransactionManager txManager = new JpaTransactionManager(); 
     txManager.setEntityManagerFactory(entityManagerFactory()); 
     return txManager; 
    } 

जब मैं अपने आवेदन मैं निम्नलिखित अपवाद को तैनात:

(org.springframework.web.context.ContextLoader:307) - Context initialization failed 
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [/Developer/tomcat/webapps/core/WEB-INF/classes/xx/xxxx/xxxx/xxxx/xxxx/Repository.class]; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy 
    at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:261) 
    at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242) 
    at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84) 
    at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1431) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1421) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) 
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:535) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:449) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:968) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:542) 
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1453) 
    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.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301) 
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) 
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) 
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1445) 
    at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:677) 
    at org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:435) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:644) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:680) 
Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy 
    at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653) 
    at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460) 
    at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286) 
    at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222) 
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69) 
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52) 
    at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070) 
    at java.lang.Class.getAnnotations(Class.java:3050) 
    at org.springframework.core.type.classreading.AnnotationAttributesReadingVisitor.registerMetaAnnotations(AnnotationAttributesReadingVisitor.java:247) 
    at org.springframework.core.type.classreading.AnnotationAttributesReadingVisitor.doVisitEnd(AnnotationAttributesReadingVisitor.java:241) 
    at org.springframework.core.type.classreading.RecursiveAnnotationAttributesVisitor.visitEnd(AnnotationAttributesReadingVisitor.java:166) 
    at org.springframework.asm.ClassReader.a(Unknown Source) 
    at org.springframework.asm.ClassReader.accept(Unknown Source) 
    at org.springframework.asm.ClassReader.accept(Unknown Source) 
    at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:59) 
    at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80) 
    at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:101) 
    at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:237) 
    ... 63 more 

जब मैं @EnableJpaRepositores टिप्पणी निकालने की तुलना में यह काम करता है। कम से कम मुझे ऐसा लगता है क्योंकि मेरे आवेदन संदर्भ से लोड हो जाएगा लेकिन यह कहेंगे कि मेरे पास निर्भरता इंजेक्शन का उपयोग किया गया है। बेशक एनोटेशन को हटाकर कारण।

क्या कोई मेरी मदद कर सकता है?

+0

क्या आप वसंत 3.1.2 के साथ प्रयास कर सकते हैं? – Luciano

उत्तर

1

यह अपवाद आम तौर पर ट्रिगर किया जाता है यदि संबंधित अनुप्रयोग वाले जेएआर फ़ाइल रनटाइम पर अनुपलब्ध है। क्या आप वाकई रनटाइम क्लासपाथ में स्प्रिंग डेटा जेपीए 1.2.0.RELEASE हैं? सुनिश्चित करें कि आप क्लासपाथ में पुराने संस्करण में नहीं खींच रहे हैं क्योंकि यह पहले लोड किया जा सकता है और एनोटेशन भी नहीं मिला है।

4

मुझे यह वही समस्या थी और यह पाया गया क्योंकि मेरे spring-data-jpa और spring-data-commons-core दोनों pom.xml में निर्भरता के रूप में थे।

</dependencies> 
    ... 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-commons-core</artifactId> 
     <version>1.3.2.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
     <version>1.2.0.RELEASE</version> 
    </dependency> 
    ... 
</dependencies> 

spring-data-commons-core निर्भरता निकाल रहा है और उसके बाद ही spring-data-jpa निर्भरता यह तय हो रही है।

</dependencies> 
    ... 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
     <version>1.2.0.RELEASE</version> 
    </dependency> 
    ... 
</dependencies> 
+0

संस्करण के रूप में (वसंत-डेटा-जेपीए 1.3.0.RELEASE) वसंत-डेटा-कॉमन्स-कोर को (वसंत-डेटा-कॉमन्स 1.5.0.RELEASE) पर ठहराया गया था। – Ithar

0

वसंत-डेटा-कॉमन्स-कोर बिल्कुल ठीक है। बस हमें जिस संस्करण का उपयोग करने की आवश्यकता है वह अधिक होना चाहिए। @EnableJpaRepositories कक्षाओं में से एक (RepositoryBeanDefinitionRegistrarSupport) केवल spring-data-commons-core 1.4.0.RELEASE में है। कामों के नीचे, आपको दोनों पुस्तकालयों को रखने की आवश्यकता है:

<dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-commons-core</artifactId> 
     <version>1.4.0.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
     <version>1.2.0.RELEASE</version> 
    </dependency> 
संबंधित मुद्दे