将 Java EE (Jakarta EE) 应用程序部署到 Azure 应用服务上的 JBoss EAP
本单元中的步骤演示了如何将 Java EE 应用程序部署到 Azure 应用服务上的 JBoss EAP,以及如何连接到数据库。 你将在下一单元中实际执行这些步骤。
创建 Java EE (Jakarta EE) 应用程序
在本模块中,你将使用一个提前准备好的示例 Java EE 应用程序,并使用以下技术:
- Java EE 8 (Jakarta EE 8)
- JAX-RS 2.1
- JSON-B 1.0
- CDI 2.0
- JPA 2.2
提示
对于大多数 Java EE (Jakarta EE) Web 应用程序,此处介绍的部署过程是类似的。
使用 Maven 配置应用程序项目,以便部署到 Azure
Microsoft 提供了 Azure 应用服务的 Maven 插件,用于将 Java Web 应用程序部署到 Azure 应用服务。 使用此 Maven 插件,你可以轻松地为 Azure 应用服务实例配置以下设置:
项 | 描述 |
---|---|
subscriptionID |
用于部署的 Azure 订阅 |
resourceGroup |
在其中部署 Web 容器的资源组的名称 |
appName |
Web 容器的应用程序实例名称 |
pricingTier |
要运行的虚拟机选择操作 |
region |
要部署的区域(与 MySQL 安装位置相同的位置) |
runtime OS |
要运行的操作系统 (Linux) |
runtime javaVersion |
Web 容器的 Java 虚拟机版本 (Java 8) |
runtime webContainer |
Web 容器 (JBoss EAP 7) |
在本模块中,你需要将应用程序部署到 JBoss EAP 环境。 对于 Java 版本,请选择 Java 8
;对于运行时 Web 容器,请选择 Jbosseap 7.4
。
生成 WAR 包
可以使用 ./mvnw package
命令来生成 Web 应用程序存档 (WAR) 包。
备注
或者,可以通过部署到本地 JBoss EAP 环境来测试包。
将 Java EE 应用部署到 JBoss EAP
创建你的 Maven 项目后,可以在 Azure 应用服务的 Maven 插件中运行 deploy
命令,以便将应用程序部署到 JBoss EAP。
deploy
命令可基于前面的插件设置创建 Azure 资源组和 JBoss EAP 实例。 这一个命令将完成从创建实例到部署 Java Web 应用程序的所有工作。
有关配置的完整列表,请参阅插件参考文档。 所有 Azure Maven 插件共享一组常用配置。 有关这些配置,请参阅常用配置。 有关特定于应用服务的配置,请参阅 Azure Web 应用:配置详细信息。
使用数据源和 JNDI 配置数据库连接
应用程序将需要绑定到数据源。 我们会将应用程序配置为使用在前面的单元中创建的 MySQL 数据库。
若要从 JBoss EAP 连接到数据库,需要配置一个 DataSource
对象。 当你配置 DataSource
对象时,应用程序可以连接到数据库。
你将使用以下信息配置 DataSource
以连接到你之前创建的 Azure Database for MySQL 实例:
数据源配置 | value |
---|---|
DataSource Name |
JPAWorldDataSourceDS |
JNDI Name |
java:jboss/datasources/JPAWorldDataSource |
Connection URL |
${MYSQL_CONNECTION_URL} |
JDBC Driver Name |
$PACKAGE_NAME.war_com.mysql.cj.jdbc.Driver_8_0 |
User Name |
${MYSQL_USER} |
Password |
${MYSQL_PASSWORD} |
Minimum Pool Size |
5 |
Maximum Pool Size |
20 |
JDBC Class Name |
com.mysql.cj.jdbc.Driver |
对于数据源,我们使用了 Java 命名和目录接口 (JNDI) 名称 java:jboss/datasources/JPAWorldDataSource
。 在多种环境中,JNDI 有助于在不更改代码的情况下更改为不同的数据库。
访问应用程序
在 JBoss EAP 中配置 MySQL 数据源连接后,可以使用 Web 浏览器或 curl
命令访问 Java EE 应用程序。
在下一单元中,你将使用此处概述的过程部署示例应用。