【问题标题】:java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;
【发布时间】:2015-03-19 16:19:50
【问题描述】:

我是 Websphere 应用服务器的新手。请让我知道我在哪里做错了。我收到java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;

我检查了谷歌,但最多的答案是使用 Hibernate 4.3.X 版本和 JPA 2.1 版本。我正在使用相同的版本。如果我删除 JPA jar 并添加 javax.persistence jar,那么我将找不到命名空间方法。

我的项目正在使用 JSF、EJB 和 JPA(Hibernate)。

正如我所追踪的,它在这行代码中给出了

SessionFactory sessionFactory = configuration.buildSessionFactory(ssrb.build());

我使用 sql server 2012 作为数据库

提前致谢

我正在使用的罐子

antlr-2.7.7
com.ibm.mqjms
hibernate-commons-annotations-4.0.5.Final
hibernate-entitymanager-4.3.8.Final
hibernate-core-4.3.8.Final
hibernate-jpa-2.1-api-1.0.0.Final
jandex-1.1.0.Final
jasper
jasper-compiler-jdt
javax.ejb
javax.faces-2.1.7
javax.jms
javax.mail-1.4.4
javax.servlet
javax-inject
jsf-api-2.2.5

【问题讨论】:

  • 您是否在自己的项目中添加了 javax.servletjavax.ejbjavax-inject 等 API?它们在容器本身中可用,不应添加。
  • 是的,我已经添加了,虽然面临这个问题,但我已经单独添加了所有这个 jar。我已经尝试过两种方式。但一次又一次面临同样的错误..

标签: hibernate jpa websphere


【解决方案1】:

WebSphere 已内置 JPA 2.0 提供程序 (OpenJPA),并且 JoinColumn.foreignKey() 从 2.1 开始可用。如果必须使用 JPA 2.1 和 Hibernate,则必须覆盖默认的 JPA 提供程序。详情请见Using third-party persistence providers

您必须将 <provider> 元素添加到 persistence.xml 以明确指定要使用的持久性提供程序并将您的应用程序的类加载器设置为 PARENT_LAST。

【讨论】:

  • @Tommy 在开始编码和选择框架之前,您还应该始终考虑平台功能。如果您编写 Java EE 6 等代码,那么兼容的服务器已经提供了您所需的一切,而无需向您的应用程序添加大量各种库。尽量不要为 Web 容器编写代码,因为您的应用程序变得越来越大,并且通常存在框架集成问题。
  • @Gas 我现在对我的团队非常生气,因为当我警告他们使用 Tomcat 时,我们正在处理同样的 WebSphere 痛苦。没人听我的
  • @maple_shaft,是的,应该始终使用部署平台进行开发。但是有些人永远不会听...尤其是现在,当 WebSphere for Developers 可以免费使用时,如果您想要轻量级服务器,您可以使用 WebSphere Liberty,它与 Tomcat 一样轻量级,并且兼容完整的 WAS(Java EE 7 功能除外)一会儿)。
  • 你们一定是在开玩笑吧。 Websphere 需要花费大量时间来为每个开发人员安装和配置。在具有 jenkins 持续集成等最佳实践的环境中运行它太难了。您可以让您的开发人员使用 websphere,但生产力成本太高。最好使用嵌入式容器进行开发,然后解决目标应用服务器上的问题。
猜你喜欢
  • 2015-09-10
  • 2015-02-07
  • 2023-03-10
  • 2019-01-24
  • 2014-06-24
  • 2014-08-26
  • 2014-04-05
  • 2014-12-24
  • 2016-06-15
相关资源
最近更新 更多