一尘不染

如何在WAS 6.1中使用javax / persistence / spi /PersistenceUnitInfo.getValidationMode()

hibernate

我将JPA 2.0与Spring一起使用,并在我的项目中进入hibernate状态。

但是,运行时为WAS 6.1。

编译正常。

但是,在部署应用程序期间,出现以下错误:

com.ibm.ws.exception.RuntimeError: java.lang.RuntimeException: java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;

在使用ctrl + shift + T搜索PersistenceUnitInfo类时,我发现它位于以下jar中:

\IBM\SDP\runtimes\base_v61\lib\j2ee.jar

\WEB-INF\lib\hibernate-jpa-2.0-api-1.0.1.Final

我从这两个JARS中提取了上面的类,并使用JAD对其进行了反编译以进行比较。

我发现方法getValidationMode()在j2ee.jar中不存在,但在hibernate-jpa jar中存在。

这是我得到错误的原因吗?如何解决呢?我如何告诉Websphere在hibernatejar中而不是在服务器运行时库中查找类?


阅读 394

收藏
2020-06-20

共1个答案

一尘不染

无论您做什么,都不能将JPA 2.0与Websphere 6.1一起使用。正如您所注意到的,它已非常深地连接到WAS内部。您有两种选择:

  1. 迁移到具有适当功能部件的WAS 7.0。
  2. 使用JPA 1.0将Hibernate降级为3.3.2 GA。
2020-06-20