JpaTransactionManager在spring启动期间无错误崩溃

JpaTransactionManager在spring启动期间无错误崩溃,spring,hibernate,maven,spring-boot,jpa,Spring,Hibernate,Maven,Spring Boot,Jpa,我正在使用Hibernate从基于spring的web应用程序连接到AWS Aurora群集。 当我在本地和testenv中运行它时,一切都正常,但在PROD环境中,web应用程序崩溃时没有任何错误。由于两个环境在hibernate/DB连接方面使用相同的配置,我怀疑是maven依赖性问题或Spring中的一些奇怪的错误配置 也尝试从生成计算机中删除m2缓存,但没有帮助 来自应用程序的日志: INFO 2019-06-14 04:14:23.173 UTC message="Root WebA

我正在使用Hibernate从基于spring的web应用程序连接到AWS Aurora群集。 当我在本地和testenv中运行它时,一切都正常,但在PROD环境中,web应用程序崩溃时没有任何错误。由于两个环境在hibernate/DB连接方面使用相同的配置,我怀疑是maven依赖性问题或Spring中的一些奇怪的错误配置

也尝试从生成计算机中删除m2缓存,但没有帮助

来自应用程序的日志:

INFO  2019-06-14 04:14:23.173 UTC message="Root WebApplicationContext: initialization completed in 5391 ms" 
INFO  2019-06-14 04:14:24.590 UTC message="Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1992eaf4: startup date [Fri Jun 14 04:14:17 UTC 2019]; root of context hierarchy" 
INFO  2019-06-14 04:14:24.883 UTC message="Initializing connection to Aurora DB with url="jdbc:mysql://*****.us-east-2.rds.amazonaws.com:3306/****?zeroDateTimeBehavior=CONVERT_TO_NULL", username="****", driverClassName="com.mysql.cj.jdbc.Driver"" 
INFO  2019-06-14 04:14:24.951 UTC message="Connection to Aurora DB initialized successfully with url="jdbc:mysql://******.us-east-2.rds.amazonaws.com:3306/****?zeroDateTimeBehavior=CONVERT_TO_NULL", username="****"" 
INFO  2019-06-14 04:14:25.120 UTC message="LocalContainerEntityManagerFactoryBean initialized successfully." 
INFO  2019-06-14 04:14:25.209 UTC message="Building JPA container EntityManagerFactory for persistence unit 'default'" 
INFO  2019-06-14 04:14:25.274 UTC message="HHH000204: Processing PersistenceUnitInfo [name: default]" 
INFO  2019-06-14 04:14:25.513 UTC message="HHH000412: Hibernate Core {5.4.2.Final}" 
WARN  2019-06-14 04:14:25.779 UTC message="HHH020100: The Ehcache second-level cache provider for Hibernate is deprecated.  See https://hibernate.atlassian.net/browse/HHH-12441 for details." 
INFO  2019-06-14 04:14:25.807 UTC message="HCANN000001: Hibernate Commons Annotations {5.1.0.Final}" 
应用程序只是在之后崩溃,没有其他信息/异常

配置

import org.apache.commons.lang3.StringUtils;
导入org.hibernate.jpa.HibernatePersistenceProvider;
导入org.slf4j.Logger;
导入org.slf4j.LoggerFactory;
导入org.springframework.beans.factory.annotation.Value;
导入org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
导入org.springframework.context.annotation.Bean;
导入org.springframework.context.annotation.Configuration;
导入org.springframework.context.annotation.Lazy;
导入org.springframework.orm.jpa.JpaTransactionManager;
导入org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
导入org.springframework.orm.jpa.vendor.hibernatejbavendorapter;
导入org.springframework.transaction.annotation.EnableTransactionManagement;
导入javax.sql.DataSource;
导入java.util.Properties;
@配置
@启用事务管理
公共类HibernateConfiguration{
私有最终记录器Logger=LoggerFactory.getLogger(HibernateConfiguration.class);
@值(${data.hibernate.verbose:true}”)
私有布尔hibernateShowSql;
@值(${data.hibernate.packagesToScan:com.myapp}”)
私有字符串包;
@值(${data.hibernate.dialogue:org.hibernate.dialogue.mysql5innodbdialogue}”)
私有字符串hibernateDialect;
@值(${data.hibernate.cache.secondLevel.enable:true}”)
私有布尔启用SecondLevelCache;
@值(${data.hibernate.cache.query.enable:true}”)
私有布尔使能QueryLevel缓存;
@值(${data.hibernate.cache.class:org.hibernate.cache.ehcache.EhCacheRegionFactory}”)
私有字符串cacheFactoryClass;
@值(${myapp.datasource.url:null})
私有字符串dbUrl;
@值(${myapp.datasource.username:null})
私有字符串dbUsername;
@值(${myapp.datasource.password:null})
私有字符串密码;
@值(${myapp.datasource.driverClassName:com.mysql.cj.jdbc.Driver}”)
私有字符串sqlDriverClass;
私有静态最终字符串属性\u dialogue=“hibernate.dialogue”;
私有静态最终字符串属性\u SHOW\u SQL=“hibernate.SHOW\u SQL”;
私有静态最终字符串属性\u CACHE\u FACTORY\u CLASS=“hibernate.CACHE.region.FACTORY\u CLASS”;
私有静态最终字符串属性\u使用第二级\u缓存=“hibernate.CACHE.USE第二级\u缓存”;
私有静态最终字符串属性\u USE\u QUERY\u CACHE=“hibernate.CACHE.USE\u QUERY\u CACHE”;
@豆子
@懒惰的
公共数据源数据源(){
info(“正在初始化与Aurora DB的连接,url=\“{}\”,用户名=\“{}\”,driverClassName=\“{}\”,dbUrl,dbUsername,sqlDriverClass);
if(StringUtils.isBlank(dbUrl)| | StringUtils.isBlank(dbUsername)| | StringUtils.isBlank(dbPassword)){
logger.error(“与DB url=\“{}\”,username=\“{}\”passwordIsBlank={}”,dbUrl,dbUsername,StringUtils.isBlank(dbPassword))连接的严重错误配置);
}
DataSource DataSource=DataSourceBuilder.create()
.url(dbUrl)
.username(dbUsername)
.password(dbPassword)
.drivercassname(sqldrivercass)
.build();
info(“与Aurora DB的连接已成功初始化,url=\“{}\”,用户名=\“{}\”,dbUrl,dbUsername);
返回数据源;
}
@豆子
@懒惰的
公共JpaTransactionManager JpaTransactionManager(){
JpaTransactionManager transactionManager=新的JpaTransactionManager();
setEntityManagerFactory(entityManagerFactoryBean().getObject());
info(“JpaTransactionManager已成功初始化”);
返回事务管理器;
}
@豆子
@懒惰的
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(){
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean=新的LocalContainerEntityManagerFactoryBean();
setJpaVendorAdapter(vendorAdaptor());
setDataSource(dataSource());
entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistenceProvider.class);
entityManagerFactoryBean.setPackagesToScan(packagesToScan.split(“,”);
setJpaProperties(jpaHibernateProperties());
info(“LocalContainerEntityManagerFactoryBean已成功初始化”);
返回entityManagerFactoryBean;
}
@豆子
@懒惰的
公共HibernateConnection HibernateConnection(){
HibernateConnection HibernateConnection=新的HibernateConnection(entityManagerFactoryBean().getObject().createEntityManager());
info(“HibernateConnection已成功初始化”);
返回休眠连接;
}
私有HibernateJavaEndorapter供应商适配器(){
HibernateJavaEndorapter vendorAdapter=新的HibernateJavaEndorapter();
vendorAdapter.setShowSql(true);
返回供应商适配器;
}
私有属性jpaHibernateProperties(){
属性=新属性();
put(PROPERTY\u SHOW\u SQL,hibernateShowSql);
properties.put(PROPERTY_方言,hibernateDialect);
put(PROPERTY\u CACHE\u FACTORY\u类,cacheFactoryClass);
put(属性\使用\查询\缓存,启用QueryLevel缓存);
放置(属性使用第二级)_
        <properties>
            <dependency.version.mfa-core-service>0.3.7</dependency.version.mfa-core-service>
            <dependency.version.spring-orm>4.3.7.RELEASE</dependency.version.spring-orm>
            <dependency.version.mysql-connector>8.0.11</dependency.version.mysql-connector>
            <dependency.version.hibernate>5.4.2.Final</dependency.version.hibernate>
        <dependency.version.commons-dbcp2>2.1.1</dependency.version.commons-dbcp2>
        </properties>
        ...
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${dependency.version.spring-orm}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${dependency.version.mysql-connector}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${dependency.version.hibernate}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>${dependency.version.commons-dbcp2}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-ehcache</artifactId>
            <version>5.4.2.Final</version>
        </dependency>
public class HibernateConnection {

    @PersistenceContext
    private final EntityManager entityManager;

    public HibernateConnection(EntityManager entityManager) {
        this.entityManager = entityManager;
    }
    ....
}
DEBUG 2019-06-14 05:48:48.487 UTC message="Registering IdentifierGenerator strategy [sequence-identity] -> [org.hibernate.id.SequenceIdentityGenerator]" 
DEBUG 2019-06-14 05:48:48.487 UTC message="Registering IdentifierGenerator strategy [enhanced-sequence] -> [org.hibernate.id.enhanced.SequenceStyleGenerator]" 
DEBUG 2019-06-14 05:48:48.489 UTC message="Registering IdentifierGenerator strategy [enhanced-table] -> [org.hibernate.id.enhanced.TableGenerator]" 
DEBUG 2019-06-14 05:25:34.502 UTC message="Registering IdentifierGenerator strategy [sequence-identity] -> [org.hibernate.id.SequenceIdentityGenerator]" 
DEBUG 2019-06-14 05:25:34.502 UTC message="Registering IdentifierGenerator strategy [enhanced-sequence] -> [org.hibernate.id.enhanced.SequenceStyleGenerator]" 
DEBUG 2019-06-14 05:25:34.516 UTC message="Registering IdentifierGenerator strategy [enhanced-table] -> [org.hibernate.id.enhanced.TableGenerator]" 
Fri Jun 14 05:25:37 UTC 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Fri Jun 14 05:25:43 UTC 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
DEBUG 2019-06-14 05:25:46.563 UTC message="Database ->
           name : MySQL
        version : 5.7.12
          major : 5
          minor : 7" 
DEBUG 2019-06-14 05:25:46.563 UTC message="Driver ->
           name : MySQL Connector/J
        version : mysql-connector-java-8.0.11 (Revision: 6d4eaa273bc181b4cf1c8ad0821a2227f116fedf)
          major : 8
          minor : 0" 
DEBUG 2019-06-14 05:25:46.563 UTC message="JDBC version : 4.2"