java - 如何在 Eclipse 中启动 Java EE 6 项目

标签 java eclipse jakarta-ee maven

在使用 Java SE 多年(以及其他语言)之后,我最近开始学习 Java EE 6。我已经购买了有关 Maven、EJB、JSF、Glassfish 等的不同书籍(虽然还没有全部阅读),但我对仅仅制作一个项目的复杂性感到完全不知所措。

我如何在 Eclipse 中从“scratch”(不是从书中的示例复制 a)开始一个项目?我可以从 Dynamic Web 项目、Maven 项目、EJB 项目、EAR 应用程序等中进行选择。如果我想制作一个内部具有 EJB/JPA 和 JSF 的应用程序(Web 应用程序),我应该使用哪个?

我知道标准 Maven 目录布局和原型(prototype),但是我不知道如果这是这样做的方式,该选择哪个。当然,我知道有很多方法可以做到这一点,这取决于我将使用它做什么,但我正在学习 Java EE 6,所以我想至少对如何设置一个基本项目有一些了解好吧。

我也对 POM 文件感到不知所措。我如何知道我需要哪些依赖项才能开始使用 Web 应用程序?或者这是否包含在正确的原型(prototype)中(如果我找到一个?)

我使用 Glassfish 作为应用程序服务器、Eclipse、EJB、JPA 和 JSF。目前仅从书本示例中学习。

最佳答案

好吧,您的问题的完整答案几乎需要单独一整本书,但这里有一些提示。

  • Java EE 应用程序的概念表示使用一个或多个 Java EE API 实现并需要 Java EE 应用程序服务器运行的任何类型的 Java 应用程序。 Java API 是这样的:Servlet、JSP、EJB、JPA 等。这些 API 的实现通常由应用程序服务器提供(例如 Tomcat 有 servlet 和 JSP 实现,Glassfish 也有这些以及 EJB 等)。比方说,有非应用程序服务器 Java EE API 实现,例如 Hibernate 的 JPA 实现。所以简而言之,如果您在您的应用程序中使用其中一些 API 实现并将其部署到某些应用程序服务器(如 Tomcat、Glassfish、JBoss AS 等)中,您就拥有了一个 Java EE 应用程序。

    • 我之所以告诉你这一切,是因为实际上,大多数项目管理工具(如 Eclipse、Maven 等)都使用这些分割,如 Web 应用程序、EJB 模块、动态 Web 项目等,作为自定义确定您的应用程序将使用哪些 Java EE API 集的球场的面额。 IE。 Web 应用程序或动态 Web 项目更可能使用 Servlet 和 JSP API,EJB 模块将(duh)使用 EJB API 等等。正如我所说,这些是球场面额。动态 Web 应用程序也可以使用 EJB 或 JPA,这并不是一成不变的。

    • 当您使用这些工具(例如 Eclipse 或 Maven)中的任何一个来启动上述命名项目之一时,例如 Elcipse 中的动态 Web 项目或使用 Maven 的标准 Web 应用程序,相应的工具将将常识依赖项添加到您的模板项目(如本例中的 Servlet 和 JSP),然后让您从这里处理它。

    • 此处的想法是在项目开始时使用所选工具的每种模板类型。就像您决定使用 Eclipse 并从一个动态 Web 项目开始一样,您应该检查 Eclipse 究竟要求您做什么以及在您这样做时做了什么(它会询问您本地安装的 Java EE 应用程序服务器的位置,从那里它将引入诸如 Servlet 实现和 JSP 实现等依赖项)。或者,如果您选择了 Maven,并启动了一个标准的 Web 项目,您应该检查一下它通过 pom.xml 文件为您的项目添加了哪些依赖项,那个 pom.xml 文件的基本功能是什么,等等。您还应该检查一下这些工具中的每一个在您告诉它时如何部署您的应用程序,它是否使用您的 Java EE 服务器的某些热部署功能,它是否需要凭据才能首先访问该服务器等。

我的简短建议是从最基本的示例开始:安装 Tomcat(推荐版本 7),启动 Eclipse 进行 Java EE 开发,将 Tomcat 安装添加到 Eclipse 配置中,启动使用该 Tomcat 的动态 Web 项目作为应用程序服务器,只做一些基本的 servlet 和 JSP 页面,然后使用 Eclipse 将该傻瓜部署到 tomcat 并运行它。然后你可以分支到更高级的东西,比如用 Maven 做同样的事情,将 Maven 项目与 Eclipse 集成,添加更多的 Java EE 东西(比如 JPA 实现)等等。

关于java - 如何在 Eclipse 中启动 Java EE 6 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7699132/

相关文章:

java - 在没有 PageFactory 的 Selenium 中使用 @FindBy

java - 无法将我的 JtextFields 保存在 arraylist 中

java - 如何使用 jni 构建项目,而无需构建过程重新创建 header ?

spring - 速度聚类问题

java - 将 JMS 配置到 Spring 应用程序中意味着什么?

java - 什么是预打包的字符流类?

java - 找不到媒体类型为 : java. util.LinkedHashMap 的响应对象的 MessageBodyWriter:application/json

eclipse - 每次重启时如何阻止 Eclipse 累积 Tomcat 实例?

java - 使用 Git 开发包含多个 Eclipse 项目的应用程序?

java - 在 Eclipse 中将 Java Enums 和 ArrayList 与 JAX-WS 结合使用