教程:您的第一个 Java EE 应用程序
最后修改时间:2023 年 9 月 7 日本教程介绍如何在 IntelliJ IDEA 中创建简单的 Java EE Web 应用程序。该应用程序将包括一个显示 的 JSP 页面Hello, World!
以及一个指向也显示 的 Java servlet 的链接Hello, World!
。
您将使用 Web 应用程序模板创建一个新的 Java Enterprise 项目,告诉 IntelliJ IDEA GlassFish 服务器的位置,然后使用运行配置来构建工件、启动服务器并将工件部署到其中。
这是您需要的:
- IntelliJ IDEA 旗舰版
免费的 IntelliJ IDEA 社区版不支持 Java 企业开发。有关更多信息,请参阅IntelliJ IDEA Ultimate 与 IntelliJ IDEA Community Edition
- 相关捆绑插件
默认情况下,所有必需的插件都在 IntelliJ IDEA Ultimate 中捆绑并启用。如果某些功能不起作用,请确保启用以下插件:
雅加达 EE 平台
Jakarta EE:应用程序服务器
Jakarta EE:Web/Servlet
玻璃鱼
有关更多信息,请参阅安装插件。
- Java SE 开发工具包 (JDK) 版本 1.8 或更高版本
您可以直接从 IntelliJ IDEA 获取 JDK,如Java 开发工具包 (JDK)中所述,也可以手动下载并安装它,例如:Oracle JDK或OpenJDK。
- 玻璃鱼
GlassFish应用程序服务器版本 4.0 或更高版本。您可以从官方存储库获取最新版本。对于本教程的目的来说,Web 配置文件子集应该足够了。
笔记
本教程使用 Oracle OpenJDK 17、Jakarta EE 9.1 和 GlassFish 6.2.5。有关其他 GlassFish、Java 和 Jakarta EE 版本之间兼容性的更多信息,请参阅https://github.com/eclipse-ee4j/glassfish#compatibility。
创建一个新的 Java 企业项目
IntelliJ IDEA 包含一个专用向导,用于创建基于各种 Java EE 和 Jakarta EE 实现的 Java Enterprise 项目。在本教程中,我们将创建一个简单的 Web 应用程序。
转到文件| 新 | 项目。
在“新建项目”对话框中,选择Jakarta EE。
输入您的项目的名称:
JavaEEHelloWorld
。选择Web应用程序模板,Maven作为构建工具,并使用Oracle OpenJDK 17作为项目SDK。不要选择或添加应用程序服务器,我们稍后会做。
单击“下一步”继续。
在“版本”字段中,选择 Jakarta EE 9.1,因为本教程中使用的 GlassFish 6.2.5 与该版本兼容。
提示
对于 GlassFish 5,选择 Java EE 8 规范。对于 GlassFish 7,选择 Jakarta EE 10。
在“依赖项”列表中,您可以看到 Web 应用程序模板仅包含“规范”下的Servlet框架。
单击创建。
探索默认项目结构
IntelliJ IDEA 使用一些样板代码创建一个项目,您可以成功构建和部署该项目。
pom.xml是包含 Maven 配置信息的项目对象模型,包括构建项目所需的依赖项和插件。
pom.xml
{...}index.jsp是访问根目录 URL 时打开的应用程序的起始页。它呈现
Hello World!
并链接到/hello-servlet
.src/main/webapp/index.jsp
{...}该类
HelloServlet
扩展HttpServlet
并用 进行注释@WebServlet
。它处理以下请求/hello-servlet
: GET 请求返回可呈现的 HTML 代码Hello World!
。src/main/java/com/example/JavaEEHelloWorld/HelloServlet.java
{...}
使用“项目”工具窗口浏览并打开项目中的文件,或按并键入文件名。CtrlShift0N
配置 GlassFish
如果您指定服务器的位置,IntelliJ IDEA 可以构建和部署应用程序的工件。对于本教程,您应该安装 GlassFish 服务器。您可以从官方项目网站下载 GlassFish 。
按打开 IDE 设置,然后选择“构建”、“执行”、“部署”| 应用服务器。CtrlAlt0S
单击并选择Glassfish 服务器。
指定 GlassFish 服务器安装位置的路径。IntelliJ IDEA 会适当检测并设置名称和版本。
创建 GlassFish 运行配置
IntelliJ IDEA 需要一个运行配置来构建工件并将其部署到您的应用程序服务器。
转到“运行”| 编辑配置。
在“运行/调试配置”对话框中,单击,展开Glassfish Server节点,然后选择“本地”。
修复运行配置设置对话框底部出现的任何警告。
最有可能的是,您需要修复以下问题:
在服务器选项卡上,将服务器域设置为
domain1
。在“部署”选项卡上,添加要部署的工件:
JavaEEHelloWorld:war exploded
在“服务器”选项卡上,设置 URL
http://localhost:8080/JavaEEHelloWorld-1.0-SNAPSHOT/
并保存运行配置。要运行配置,请按并选择创建的 GlassFish 配置。AltShiftF10
此运行配置构建工件,然后启动 GlassFish 服务器,并将工件部署到服务器。您应该在“运行”工具窗口中看到相应的输出。
完成此操作后,它将在您的 Web 浏览器中打开指定的 URL。
以下是 URL 的链接:http://localhost:8080/JavaEEHelloWorld-1.0-SNAPSHOT/
修改应用程序
每当您更改应用程序的源代码时,您都可以重新启动运行配置以查看更改。但这并不总是必要的,特别是当您无法重新启动服务器时。大多数更改都很小,不需要重建工件、重新启动服务器等。让我们更改应用程序的 JSP 页面。
打开index.jsp并将问候语从 更改
Hello, World!
为A better greeting.
。在“运行”工具窗口中,单击或按。CtrlF10
在“更新”对话框中,选择“更新资源”,因为 JSP 页面是静态资源。单击“确定”。
在 Web 浏览器中刷新应用程序 URL 以查看新字符串:
A better greeting.
您可以在运行配置设置中配置默认更新操作:转到运行 | 编辑配置。更改GlassFish 运行配置设置的“服务器”选项卡下的“更新”操作选项。
通过“框架停用”选项,您可以配置为更新资源和类,而无需在每次从 IntelliJ IDEA 更改焦点时重新部署和重新启动服务器。在这种情况下,您甚至不必使用“更新应用程序”操作,只需切换到 Web 浏览器并刷新页面即可。
将应用程序打包成 WAR 并将其部署到正在运行的服务器上
在前面的步骤中,我们使用分解的工件部署应用程序,其中所有文件均未压缩。这在开发的第一阶段非常有用,因为它允许您更新单个资源和类而无需重新部署。当您对应用程序感到满意并准备通过部署到远程服务器与其他人共享时,最好使用压缩 Web 存档 (WAR) 格式。
让我们添加一个远程GlassFish 运行配置,以将 WAR 工件部署到正在运行的服务器。这假设您没有在前面的步骤中终止 GlassFish 实例。
转到“运行”| 编辑配置。
在“运行/调试配置”对话框中,单击,展开GlassFish Server节点,然后选择“远程”。
更改此运行配置的名称以进行区分,例如:
Remote GlassFish 4.1.1
。打开Deployment选项卡,单击要部署的工件表上方,然后选择Artifact。选择部署
JavaEEHelloWorld:war
工件并单击OK。单击“确定”保存远程运行配置。
打开index.jsp并将问候语更改为
Hello from WAR!
。在主工具栏中选择新的运行配置,然后单击或按。ShiftF10
新配置构建 WAR 工件并将其部署到正在运行的服务器。刷新 URL http://localhost:8080/JavaEEHelloWorld-1.0-SNAPSHOT/并查看新的问候语:Hello from WAR!
将应用程序打包到 EAR 中
适当的企业应用程序被打包到可包含 WAR 和 JAR 文件的 EAR 文件中。让我们看看如何在 IntelliJ IDEA 中执行此操作。
在项目工具窗口中,选择顶级项目目录。Alt01
按并键入。CtrlShift0A
Add Framework Support
找到该操作后,单击它以打开“添加框架支持”对话框。
在“添加框架支持”对话框中,选择“Java EE”下的“JavaEE 应用程序”,然后单击“确定”。
IntelliJ IDEA 在您的模块中添加META-INF/application.xml文件。这是您的应用程序的部署描述符。
按打开“项目结构”对话框。在“工件”页面上,选择新的JavaEEHelloWorld:ear 分解工件,并注意它仅包含构面资源。CtrlAltShift0S
javaEEApplication
展开可用元素下的Artifacts元素,然后双击JavaEEHelloWorld:war将其添加到 EAR 工件结构中。
当您看到一条消息,指出Web 方面未在 application.xml 中注册时,请单击“修复”。
单击,选择Java EE Application: Archive,然后单击For 'JavaEEHelloWorld:earexploded'。
选择新的 EAR 工件并单击Create Manifest。
在META-INF下指定application.xml旁边的默认位置。
打开application.xml。它应包含以下内容:
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_8.xsd" version="8"> <module id="JavaEEHelloWorld-Web"> <web> <web-uri>JavaEEHelloWorld.war</web-uri> <context-root>JavaEEHelloWorldWeb</context-root> </web> </module> </application>
部署 EAR 工件
部署 EAR 工件与部署 WAR 类似:您需要远程 GlassFish 运行配置。
转到“运行”| 编辑配置。
在“运行/调试配置”对话框中,单击,展开GlassFish Server节点,然后选择“远程”。
更改此运行配置的名称以进行区分,例如:
Remote EAR GlassFish 6.2.5
。打开Deployment选项卡,单击要部署的工件表下方,然后选择Artifact。选择部署
JavaEEHelloWorld:ear
工件并单击OK。单击“确定”保存远程运行配置。
打开index.jsp并将问候语更改为
Hello from EAR!
。在主工具栏中选择新的运行配置,然后单击或按。ShiftF10
新配置构建 EAR 工件并将其部署到正在运行的服务器。刷新 URL http://localhost:8080/JavaEEHelloWorldWeb/并查看新的问候语:Hello from EAR!
。请注意,该 URL 与application.xmlcontext-root
中指定的相对应。
故障排除
如果出现404
错误,请确保您在创建项目时选择了与您的 GlassFish 版本兼容的 Jakarta EE 规范版本。
有关更多信息,请参阅GlassFish 版本兼容性。
接下来是什么?
在本教程中,我们创建并部署了一个简单的 Java 企业应用程序。要扩展此知识,您可以创建一个 RESTful Web 服务,如教程:您的第一个 RESTful Web 服务中所述。
感谢您的反馈意见!