2017-03-16 3 views
0

Hat für 1 Nacht gekämpft, gestern ist alles in Ordnung. Ich glaube, ich habe irgendwo versagt.Spring 4 - Hibernate 5 - Fehler beim Erstellen LocalSessionFactoryBean

Hat jemand Ahnung, wo ist das Problem? unter Protokoll hilft mir nicht, den Täter zu finden.

Bitte lassen Sie mich wissen, was ich hier teilen soll.

WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with 
     name 'agentPointDao': Unsatisfied dependency expressed through method 'init' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating 
     bean with name 'localSessionFactoryBean' defined in xxx.sma.engine.ConfigurationRepository: Invocation of init method failed; nested exception is java.lang.NullPointer 
     Exception 
     Mar 16, 2017 7:16:56 AM org.springframework.web.context.ContextLoader initWebApplicationContext 
     SEVERE: Context initialization failed 
     org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'agentPointDao': Unsatisfied dependency expressed through method 'init' parameter 0; n 
     ested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'localSessionFactoryBean' defined in xxx.sma.engine.Configura 
     tionRepository: Invocation of init method failed; nested exception is java.lang.NullPointerException 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:671) 
     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:370) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1219) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:754) 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) 
     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444) 
     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326) 
     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4937) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
     Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'localSessionFactoryBean' defined in xxx.sma.engine.ConfigurationRepo 
     sitory: Invocation of init method failed; nested exception is java.lang.NullPointerException 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) 
     at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1131) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1059) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:663) 
     ... 24 more 
     Caused by: java.lang.NullPointerException 
     at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processFkSecondPassesInOrder(InFlightMetadataCollectorImpl.java:1674) 
     at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1583) 
     at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:278) 
     at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83) 
     at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418) 
     at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87) 
     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 
     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) 
     at org.springframework.orm.hibernate5.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:511) 
     at org.springframework.orm.hibernate5.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:495) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579) 
     ... 34 more 

     Mar 16, 2017 7:16:56 AM org.apache.catalina.core.StandardContext listenerStart 
     SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
     org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'agentPointDao': Unsatisfied dependency expressed through method 'init' parameter 0; n 
     ested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'localSessionFactoryBean' defined in xxx.sma.engine.Configura 
     tionRepository: Invocation of init method failed; nested exception is java.lang.NullPointerException 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:671) 
     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:370) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1219) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:754) 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) 
     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444) 
     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326) 
     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4937) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
     Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'localSessionFactoryBean' defined in xxx.sma.engine.ConfigurationRepo 
     sitory: Invocation of init method failed; nested exception is java.lang.NullPointerException 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1583) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) 
     at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1131) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1059) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:663) 
     ... 24 more 
     Caused by: java.lang.NullPointerException 
     at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processFkSecondPassesInOrder(InFlightMetadataCollectorImpl.java:1674) 
     at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1583) 
     at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:278) 
     at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83) 
     at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418) 
     at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87) 
     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 
     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) 
     at org.springframework.orm.hibernate5.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:511) 
     at org.springframework.orm.hibernate5.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:495) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1642) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1579) 
     ... 34 more 

     Mar 16, 2017 7:16:56 AM org.apache.catalina.core.StandardContext startInternal 
     SEVERE: Error listenerStart 

Hier einige meiner Code:

ConfigurationRepository.java

import com.zaxxer.hikari.HikariDataSource; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.orm.hibernate5.HibernateTransactionManager; 
import org.springframework.orm.hibernate5.LocalSessionFactoryBean; 
import org.springframework.transaction.annotation.EnableTransactionManagement; 

import javax.sql.DataSource; 
import java.util.Properties; 

@Configuration 
@EnableTransactionManagement 
@ComponentScan({"xxx.sma.engine"}) 
public class ConfigurationRepository { 

    //development 
    public final static String DB_URL = "jdbc:oracle:thin:@xx.xxx.xx.x:1521:orcl"; 
    public final static String DB_USERNAME = "XXX"; 
    public final static String DB_PASSWORD = "xxx"; 
    public final static Integer DB_MAX_POOL = 2; 

    @Bean 
    public LocalSessionFactoryBean localSessionFactoryBean() { 
     LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean(); 
     localSessionFactoryBean.setDataSource(dataSource()); 
     localSessionFactoryBean.setHibernateProperties(properties()); 
     localSessionFactoryBean.setPackagesToScan(new String[]{"xxx.sma.engine.model"}); 
     return localSessionFactoryBean; 
    } 

    @Bean 
    public HibernateTransactionManager hibernateTransactionManager() { 
     HibernateTransactionManager hibernateTransactionManager = new HibernateTransactionManager(); 
     hibernateTransactionManager.setSessionFactory(localSessionFactoryBean().getObject()); 
     return hibernateTransactionManager; 
    } 

    private DataSource dataSource() { 
     HikariDataSource hikariDataSource = new HikariDataSource(); 
     hikariDataSource.setMaximumPoolSize(DB_MAX_POOL); 
     hikariDataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver"); 
     hikariDataSource.setJdbcUrl(DB_URL); 
     hikariDataSource.setUsername(DB_USERNAME); 
     hikariDataSource.setPassword(DB_PASSWORD); 
     return hikariDataSource; 
    } 

    private Properties properties() { 
     Properties properties = new Properties(); 
     properties.put("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect"); 
     properties.put("hibernate.show_sql", true); 
     return properties; 
    } 

} 

AgentPointDao.java

import com.genevacons.h3i.sma.engine.model.AgentPoint; 
public interface AgentPointDao extends HibernateDao { 
    AgentPoint getByUserId(Integer userId); 
} 

AgentPointDaoImpl.java

import com.genevacons.h3i.sma.engine.dao.AgentPointDao; 
import com.genevacons.h3i.sma.engine.dao.BgDao; 
import com.genevacons.h3i.sma.engine.model.AgentPoint; 
import com.genevacons.h3i.sma.engine.model.Bg; 
import org.hibernate.SessionFactory; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Repository; 
import java.util.List; 

@Repository("agentPointDao") 
public class AgentPointDaoImpl extends HibernateDaoImpl<AgentPoint> implements AgentPointDao { 
    private SessionFactory sessionFactory; 

    public AgentPointDaoImpl() { 
     super(AgentPoint.class); 
    } 

    @Autowired 
    public void init(SessionFactory sessionFactory) { 
     setSessionFactory(sessionFactory); 
     this.sessionFactory = sessionFactory; 
    } 
    public AgentPoint getByUserId(Integer userId) { 
     List<AgentPoint> agentPointList = sessionFactory.getCurrentSession().createQuery("from AgentPoint where user.userId = :userId", AgentPoint.class) 
       .setParameter("userId", userId) 
       .getResultList(); 
     return agentPointList.isEmpty() ? null : agentPointList.get(0); 
    } 
} 
+0

Einige Code helfen könnte. – CollinD

+0

@CollinD etwas Code hinzugefügt, bitte teilen Sie Ihre obwohl, danke – FYA

Antwort

1

Von Stacktrace können Sie sehen, dass es wahrscheinlich zu Konfiguration in engen Zusammenhang steht (nämlich FK - Fremdschlüssel - nicht gefunden):

Caused by: java.lang.NullPointerException 
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processFkSecondPassesInOrder(InFlightMetadataCollectorImpl.java:1674) 
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1583) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:278) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83) 
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418) 
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) 
    at org.springframework.orm.hibernate5.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:511) 

Also, Sie überprüfen Sie Entitäten Konfiguration enthält einige baumelnden Fremdschlüssel nicht/stellen Sie sicher, Ihr Paket-Scan enthält alle Entitäten.

Hier sind einige ähnliche Probleme von Stackoverflow: link 1, link 2

+0

Ich werde überprüfen, aber was ist die Ursache der Nullzeiger? – FYA

+0

Sie müssen dafür Quellcode einbetten, zum Beispiel https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl .java, aber ich kann nicht sagen, das genaue Problem ohne Debugging leider – borowis

+1

kann nicht glauben, Ausnahme mich nicht helfen, danke für Ihre Hilfe @borowis. Diese FK Frage habe ich behoben. Es funktioniert jetzt. – FYA

Verwandte Themen