大家好长话短说,我在我的项目中使用hibernate,我尝试在WebSphere上部署我的项目,但是它给了我在问题标题中看到的错误 ,正如你在我的罐子里看到的那样,没有更低版本的jpa 2.0的痕迹
但是我知道所有服务器都有jpa的版本,而websphere 7使用的是我在它的罐子里面找到的1.0,这里有一张图片,
如果有人请知道如何解决这个问题或者在我感谢之前发现这个问题,请提前谢谢,我会留下更多信息的完整堆栈跟踪:
引起:java.lang.NoSuchMethodError:javax / persistence / spi / PersistenceUnitInfo.getSharedCacheMode()Ljavax / persistence / SharedCacheMode; at org.hibernate.ejb.util.LogHelper.logPersistenceUnitInfo(LogHelper.java:39) 在org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:516) 在org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73) 在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:288) 在org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485) ......还有61个
答案 0 :(得分:1)
我在Websphere 7中使用jpa 2.1部署我的应用程序时遇到了类似的问题。
如果是同样的问题,你必须告诉Websphere使用Hibernate持久性提供程序而不是Default Persistance提供。
我在这个答案中写了一个对我有用的解决方案的指南:
https://stackoverflow.com/a/38505479/6503002
编辑:(解释指南的第1步和第2步)
步骤1:要创建一个文件夹,您必须访问服务器计算机(通过ssh)并在文件系统中创建它(例如 / usr / sharedHibernate ,假设您的服务器在Linux上运行)。然后在您创建的文件夹中复制hibernate库(从本地计算机到服务器,使用Filezilla或WinScp或Putty)。
步骤2:在左侧的Websphere控制台中,您有 Environment 部分,其中包含 Shared Libraries 子部分:
这里创建一个新的共享库,给它你想要的名称,并在classpath textarea中插入你之前创建的文件夹的路径(例如 / usr / sharedHibernate )