当前位置: 首页 > 面试题库 >

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

齐献
2023-03-14
问题内容

我将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中而不是在服务器运行时库中查找类?


问题答案:

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

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


 类似资料:
  • 有人知道如何使用javax吗。IntelliJ中的验证包?我用的是Gradle,这个软件包不会像我用的其他软件一样自动导入。我还试着从jar网站下载,但也没用。我的Gradle项目“无法解析与javax相关的任何符号”。验证

  • 我有一个Play框架应用程序,我使用的是Hibernate 4.2。5.最终版本(通过Maven依赖关系管理器检索)。我决定升级到Hibernate4.3。0.最后,成功重新编译我的应用程序并运行它。 我得到了下面的例外,并没有能够找出原因。我降级回到4.2.5,这个问题没有发生。然后,我尝试在4.2.5之后的每个最终版本中升级Hibernate。也就是说,我从4.2.5。最终到4.2.6。最后,

  • 目前我正在使用JDK1.8。需要知道什么是javax版本。为了避免声纳违规,请尝试设置以下属性,结果是“org.xml.sax.saxNotRecognitizedException:Property”http://javax.xml.XMLConstants/property/accessExternalDTD“不被承认。“SchemaFactory SchemaFactory=SchemaFa

  • 免责声明:我对Java很陌生,但我一直在建设。NET应用程序13年。 我正在尝试构建这个Java应用程序,它可以为教程做一些基本的计算。老实说,这不是一个很大的程序,但我甚至不能把它放到

  • 问题内容: 我正在创建一个框架,该框架公开了供开发人员使用的API: 开发人员应该做的就是针对这些API方法编写项目代码。我还希望它们能够在运行时类路径上放置不同的“驱动程序” /“ API绑定”(与JDBC或SLF4J的工作方式相同),并使API方法调用(等)在不同的第三方资源(文件)上运行,服务器等)。因此,相同的代码和API调用将映射到操作上的不同资源,这取决于驱动器/绑定运行时类路径看(即

  • 这将导致消息。 这可能吗?是否需要重写bean使其工作?字段名是否有预定义的属性?