Glassfish 3.1.2不包含javax.persistence jar

时间:2016-10-08 07:30:47

标签: java eclipse maven jpa glassfish

我正在尝试使用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项目,并从数据库连接表中创建了实体。
  5. 我觉得奇怪的是,glassfish / lib里面的jee.jar只包含一个pom.xml

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

    我的项目是否是Maven项目才能自动下载这个罐子?我可以通过将我的项目配置为Maven项目来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

  

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

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

但是如果你打开MANIFEST.MF文件,你会发现它指向Class-Path:条目中的许多jar文件,你需要能够开发JavaEE应用程序。

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

  

我的项目是否是Maven项目才能自动下载这个罐子?

没有。您的项目可以但不应该是maven项目。举个例子,我们假设您有一个Eclipse项目,您希望在其中开发EJB应用程序。只需右键单击项目

  • 转到Properties -> Build Path页面并更改为Libraries标签

  • 点击Add External Jars ...

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