【问题标题】:Glassfish 3.1.2 doesn't contain javax.persistence jarGlassfish 3.1.2 不包含 javax.persistence jar
【发布时间】:2017-02-17 04:46:51
【问题描述】:

我正在尝试使用 Eclipse Mars 2 和 Glassfish 3.1.2,但是当我使用 EclipseLink 2.1 从表中创建实体时,在构建路径中找不到 javax.persistence。

这是正常行为吗?

  1. 我用 eclipse 创建了 Oracle 数据库连接
  2. 我用 Glassfish 3 安装了 JEE 6 SDK
  3. 我启动了 glassfish 服务器并配置了数据源和连接池。
  4. 我创建了一个 JPA 项目并从 db 连接表中创建了实体。

我觉得奇怪的是 glassfish/lib 中的 jee.jar 只包含一个 pom.xml

Glassfish 不应该包含使用 jee 标准开发所需的所有罐子吗?

我的项目是否打算成为一个 Maven 项目以便自动下载这个 jars?我可以通过将我的项目配置为 Maven 项目来解决此问题吗?

【问题讨论】:

标签: java eclipse maven jpa glassfish


【解决方案1】:

Glassfish 不应该包含使用 jee 标准开发所需的所有罐子吗?

是的,它包含所有需要的罐子,但是以间接的方式。即使它是一个只有一个文件的jar文件,即MANIFEST.MF和一个目录maven,其中包含您提到的pom文件。

但是,如果您打开 MANIFEST.MF 文件,您会看到它指向 Class-Path: 条目中的大量 jar 文件,您需要这些文件才能开发 JavaEE 应用程序。

所以一切都在那里,您只需将此文件添加到您的依赖项中,就可以编译您的 JavaEE(Servlets、JSF、EJB、JPA,...)类并部署在服务器上。但是这个(javaee.jar)必须是一个编译时依赖,即不应该与您的应用程序一起打包,因为 jar 已经包含在服务器中。

我的项目是否打算成为 Maven 项目以便自动下载此 jar?

没有。您的项目可以是但不应该是 Maven 项目。例如,假设您有一个 Eclipse 项目,您想在其中开发一个 EJB 应用程序。只需右键单击项目

  • 转到Properties -> Build Path 页面并更改为Libraries 选项卡

  • 点击Add External Jars ...

  • 转到 Glassfish lib 目录并添加 javaee.jar,您就完成了。
  • 现在您可以使用所有 JavaEE 注释和类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2012-08-17
    • 1970-01-01
    相关资源
    最近更新 更多