【问题标题】:Spring data jpa + hibernate + websphere 7 deployment support needed需要 Spring data jpa + hibernate + websphere 7 部署支持
【发布时间】:2016-05-23 06:29:36
【问题描述】:

我们正在尝试在websphere 7 中部署战争,目前仅支持JPA 1.0,我们无法升级到JPA 2.0 并使用它。所以我们正在降级应用程序并部署。

目前使用spring-data-jpa以下,hibernate和spring版本如下

<dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.3.1.ga</version>
    </dependency>

<dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.0.2.RELEASE</version>
    </dependency>

春季版:3.2.5.RELEASE

但我们仍然得到以下异常

Caused by: java.lang.NoSuchMethodError: javax/persistence/EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel;
    at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:56)
    at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:145)

请指教,我们如何解决这个问题。

提前致谢

【问题讨论】:

  • 你的服务器支持 JPA1 并不意味着你不能使用 JPA2。只需在你的战争中打包所有东西,禁用父类加载和部署。而不是试图与旧版本一起破解。
  • 如果我们按原样部署而不在 persistence.xml 中降级到 jpa 1.0 版本并禁用父类优先加载,我们将得到 Caused by: org.xml.sax.SAXParseException: cvc-complex -type.3.1:元素'persistence'的属性'version'的值'2.0'对于相应的属性使用无效。属性“版本”的固定值为“1.0”。
  • 那么你的战争中有 JPA 1,或者你的战争中没有包括所有必要的东西。此外,您不应使用 hibernate 和 spring-data-jpa 的版本,而应使用更新的版本。
  • 所有内容都包含在内,它会抛出以下相关错误消息:java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;在 org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:642)
  • 那么您的版本不兼容...可能是 JPA 2.1 实现并包含 JPA 2.0 API(反之亦然)。

标签: spring jpa websphere spring-data-jpa websphere-7


【解决方案1】:

在创建具有休眠 jar 的共享库路径并在启动服务器之前映射到应用程序之后。

【讨论】:

    猜你喜欢
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2019-07-20
    • 2016-06-26
    • 2016-10-15
    • 1970-01-01
    • 2018-07-23
    相关资源
    最近更新 更多