2017-03-16 25 views
0

1泊分の苦労をしていますが、昨日はすべて問題ありません。私はどこかを台無しにしたと思う。Spring 4 - Hibernate 5 - LocalSessionFactoryBeanの作成中にエラーが発生する

誰かが問題の原因を知っていますか?以下のログは、私が犯人を見つけるのを助けていない。

ここで私が何を共有したいか教えてください。

ここ
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 

私のコードの一部:

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); 
    } 
} 
( - 外部キー - すなわち、FK見つからない)あなたはそれがおそらく構成に関連だと見ることができますスタックトレースから
+0

いくつかのコードを助けるかもしれない:ここで

はstackoverflowのからいくつかの同様の問題があります。 – CollinD

+0

@CollinDいくつかのコードが追加されました。ご協力ありがとうございます – FYA

答えて

1

:だから

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) 

、ダブルあなたをチェックしたエンティティの設定を確認してください/いくつかのダングリングの外部キーが含まれていません。パッケージスキャンにはすべてのエンティティが含まれます。 link 1link 2

+0

もう一度チェックしますが、原因は何ですか? – FYA

+0

あなたはそのためのソースコードを掘り下げる必要があります。例えばhttps://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl .java、しかし、私は残念なことにデバッグせずに正確な問題を言うことはできません – borowis

+1

あなたの助け@borowisのおかげで、助けていない例外をスローすると信じることはできません。それらのFKの問題は私がそれを修正しました。それは今働いている。 – FYA

関連する問題