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