Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法为事务打开JPA EntityManager;嵌套异常为java.lang.IllegalStateException:EntityManagerFactory已关闭_Jpa_Spring Data Jpa - Fatal编程技术网

无法为事务打开JPA EntityManager;嵌套异常为java.lang.IllegalStateException:EntityManagerFactory已关闭

无法为事务打开JPA EntityManager;嵌套异常为java.lang.IllegalStateException:EntityManagerFactory已关闭,jpa,spring-data-jpa,Jpa,Spring Data Jpa,当我在本地运行spring项目时,我没有任何异常。但在服务器上部署时,我得到: org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: EntityManagerFactory is closed at org.spr

当我在本地运行spring项目时,我没有任何异常。但在服务器上部署时,我得到:

org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: EntityManagerFactory is closed
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:450)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:378)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:474)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:289)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at com.scoring.main.services.implementations.BlockNumberServiceImpl$$EnhancerBySpringCGLIB$$dd6e9601.getBlockNumberPair(<generated>)
at com.scoring.main.services.implementations.ListenerServiceImpl.getAllActualTransactions(ListenerServiceImpl.java:48)
at com.scoring.main.listeners.TransactionEventListener.lambda$new$1(TransactionEventListener.java:60)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: EntityManagerFactory is closed
    at org.hibernate.internal.SessionFactoryImpl.validateNotClosed(SessionFactoryImpl.java:498)
    at org.hibernate.internal.SessionFactoryImpl.buildEntityManager(SessionFactoryImpl.java:573)
    at org.hibernate.internal.SessionFactoryImpl.createEntityManager(SessionFactoryImpl.java:569)
    at org.hibernate.internal.SessionFactoryImpl.createEntityManager(SessionFactoryImpl.java:155)
    at org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerForTransaction(JpaTransactionManager.java:468)
    at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:389)
    ... 16 more

问题在哪里?为什么它在本地工作?

通过重新启动服务器解决

更新:


这是詹金斯的配置错误。我正在把我的项目推进Github,Jenkins部署了这个项目。在Jenkins重新部署之后,我启动tomcat服务器的数量和我进入Github的数量一样多,在日志中我得到了这个例外。但有趣的是,它是如何在同一个端口启动许多进程的?在这种情况下,服务器不应该启动。

数据库在哪里?
@Transactional(readOnly = true)
@Override
public BlockNumber getBlockNumberPair() {
    return blockNumberRepository.findById(1L).get();
}