2016-06-10 11 views
0

Привет всем первым один простите за мой плохой английский, Я использую Spring Framework и конфигурируется с аннотациями, но существует ошибкаSpring Data JPA Проблемы

это мой WebAppInitializer класс я, используя для DispatcherServlet

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

@Override 
protected Class<?>[] getRootConfigClasses() { 
    return new Class<?>[] {RootConfig.class}; 
} 

//Cofiguración especifica de clases 
@Override 
protected Class<?>[] getServletConfigClasses() { 
    return new Class<?>[] {WebConfig.class}; 
} 

/** 
* Mapeo de DispatcherSerbvlet 
* @return 
*/ 
@Override 
protected String[] getServletMappings() { 
    return new String[]{"/"}; 
} 
} 

этот класс Rootconfig для сканирования весной компоненты

@Configuration 
@ComponentScan(basePackages = {"com.factory.soft.web"}, 
      excludeFilters = { 
      @Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)}) 
public class RootConfig {} 

И последний класс WebConfig

@Configuration 
@EnableWebMvc //Habilita SpringMVC 

@ComponentScan("com.factory.soft") 
public class WebConfig extends WebMvcConfigurerAdapter{ 
/** 
* El resolvedor de vistas de jsp 
* @return 
*/ 
@Bean 
public ViewResolver viewResolver(){ 
    InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
    resolver.setPrefix("/WEB-INF/views/"); 
    resolver.setSuffix(".jsp"); 
    resolver.setExposeContextBeansAsAttributes(true); 
    resolver.setViewClass(org.springframework.web.servlet.view.JstlView.class); 
    return resolver; 
} 
@Bean 
public PersistenceAnnotationBeanPostProcessor paPostProcessor() { 
    return new PersistenceAnnotationBeanPostProcessor(); 
} 
/** 
* Configure Static contentc handling 
* @param configurer 
*/ 
@Override 
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
    configurer.enable(); 
}} 

для JPA coniguration

@Configuration 
@EnableJpaRepositories(basePackages="com.factory.soft.repository") 
public class JPAConfig { 

@Bean 
public DataSource dataSource(){ 
    DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
    dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
    dataSource.setUrl("jdbc:mysql://localhost:3306/db"); 
    dataSource.setUsername("user"); 
    dataSource.setPassword("password"); 
    return null; 
} 

@Bean 
public PersistenceExceptionTranslationPostProcessor exceptionTranslation(){ 
    return new PersistenceExceptionTranslationPostProcessor(); 
} 

@Bean 
public LocalContainerEntityManagerFactoryBean entityManagerFactory(){ 
    LocalContainerEntityManagerFactoryBean emfb = new LocalContainerEntityManagerFactoryBean(); 
    emfb.setDataSource(dataSource()); 
    emfb.setPersistenceUnitName("SOFTPU"); 
    JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); 
    emfb.setJpaVendorAdapter(vendorAdapter); 
    emfb.setJpaProperties(additionalProperties()); 
    emfb.setPackagesToScan("com.factory.soft.domain"); 
    return emfb; 
} 

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

Properties additionalProperties() { 
    Properties properties = new Properties(); 
    properties.setProperty("hibernate.hbm2ddl.auto", "create-drop"); 
    properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect"); 
    return properties; 
} 

@Bean 
public HibernateJpaVendorAdapter jpaVendorAdapter() { 
    HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter(); 
    adapter.setDatabase(Database.MYSQL); 
    adapter.setShowSql(true); 
    adapter.setGenerateDdl(true); 
    return adapter; 
}} 

Это ошибка трек NetBeans

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'exceptionTranslation' defined in class path resource [com/factory/soft/data/JPAConfig.class]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198) 
at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:220) 
at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:618) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:467) 
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658) 
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:530) 
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484) 
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
at javax.servlet.GenericServlet.init(GenericServlet.java:158) 
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1241) 
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:847) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658) 
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1556) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1513) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice 
at org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor.setBeanFactory(PersistenceExceptionTranslationPostProcessor.java:85) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1572) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1540) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
... 32 more 
Caused by: java.lang.ClassNotFoundException: org.aopalliance.aop.Advice 
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1295) 
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1147) 
... 36 more 
+0

Не могли бы вы разместить свой 'pom.xml'? – Saravana

ответ

0

Похоже, что вы нуждаетесь в следующих Jar (java.lang.ClassNotFoundException: org.aopalliance.aop.Advice):

aopalliance-1.0.jar

Загрузите вышеуказанный Jar с http://aopalliance.sourceforge.net/ и добавьте в папку lib вашего веб-приложения. В качестве альтернативы вы можете добавить следующие зависимости к pom.xml, если вы используете maven:

<dependency> 
    <groupId>aopalliance</groupId> 
    <artifactId>aopalliance</artifactId> 
    <version>1.0</version> 
</dependency> 
0

Две проблемы,

1.Add АОП связанных зависимостей в POM

2.You're возвращение dataSource в null в JPAConfig класс

@Bean 
public DataSource dataSource(){ 
    DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
    dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
    dataSource.setUrl("jdbc:mysql://localhost:3306/db"); 
    dataSource.setUsername("user"); 
    dataSource.setPassword("password"); 
    return null; 
} 

изменить возвращаемое значение в dataSource

+0

Спасибо, я добавлю AOP и возвращаю datasource, но теперь появляюсь другая ошибка org.springframework.beans.factory.BeanDefinitionStoreException: Не удалось прочитать класс кандидата-кандидата: файл [C: \ U \ U \ Documents \ soft \ build \ web \ WEB -INF \ классы \ ком \ завод \ мягкий \ Data \ JPAConfig.class]; Вложенное исключение - java.lang.NoClassDefFoundError: org/springframework/data/repository/query/QueryLookupStrategy $ Key – CCastro

+0

Пожалуйста, разместите свой 'pom.xml'? – Saravana

Смежные вопросы