无法为事务打开JPA EntityManager;嵌套异常为java.lang.IllegalStateException:EntityManagerFactory已关闭
当我在本地运行spring项目时,我没有任何异常。但在服务器上部署时,我得到:无法为事务打开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
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();
}