我一直在努力
服务器无法从EntityManagerFactory
提供程序为默认持久性单元创建org.hibernate.ejb.HibernatePersistence
工厂
当我尝试在WebSphere 7 + Oracle上运行Web应用程序(.war)时。到目前为止,这在tomcat + MySql下运行良好。
我的persistance.xml的配置
<persistence-unit name="default">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<non-jta-data-source>src/test</non-jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.Oracle10gDialect"/>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<property name="hibernate.connection.release_mode" value="after_transaction"/>
</persistence-unit>
谷歌搜索后有几个解决方案。但即使在尝试了大约2天之后也没有运气。 要解决此问题,我们是否需要在WebSphere中安装任何修订包? 请在下面的链接中找到堆栈跟踪文件。
答案 0 :(得分:1)
在WebSphere v7中使用容器管理的JPA,您需要安装feature pack for JPA,它只支持JPA 2.0。
根据你的日志看起来你正在使用的是JPA 2.1的Hibernate 4.3。 您无法将其与经典WebSphere Application Server一起使用,请参阅Deploying application using Hibernate JPA 2.1 to IBM WebSphere以获取更多详细信息。
因此,您需要降级到Hibernate 4.2,使用应用程序管理的实体管理器,或迁移到完全支持JPA 2.1的WebSphere Liberty Profile Server 8.5.5.6或更高版本。
如果您的应用程序适用于Tomcat,我建议您尝试使用WebSphere Liberty,它也是轻量级,开发人员友好的服务器,可免费下载 - https://developer.ibm.com/wasdev/