我是 WAS Liberty 的新手,正在尝试部署 Spring Boot 应用程序。服务器在启动时抛出异常。
[AVERTISSEMENT] 上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名称为“entityManagerFactory”的bean时出错[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration .class]: init 方法调用失败;嵌套异常是 javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; 嵌套异常是 java.lang.UnsupportedOperationException
问题是 Hibernate 试图用错误的事务管理器类调用挂起: 原因:org.hibernate.engine.transaction.jta.platform.internal 的 java.lang.UnsupportedOperationException。WebSphereExtendedJtaPlatform $TransactionManagerAdapter.suspend(WebSphereExtendedJtaPlatform.java:131)
这个类是由 Spring Boot 在 HibernateJpaConfiguration 类中配置的,它不包括正确的事务管理器:
私有静态最终字符串 [] WEBSPHERE_JTA_PLATFORM_CLASSES = { "org.hibernate.engine.transaction.jta.platform.internal.WebSphereExtendedJtaPlatform", "org.hibernate.service.jta.platform.internal.WebSphereExtendedJtaPlatform" };
当我将类更改为 org.hibernate.engine.transaction.jta.platform.internal.WebSphereLibertyJtaPlatform 时,应用程序启动。这是配置问题还是 Spring Boot 不支持 WAS Liberty。
谢谢你的帮助。