为 JBoss EAP 部署开发应用程序入门
开始为 JBoss EAP 部署创建应用程序。
摘要
提供有关 JBoss EAP 文档的反馈 复制链接链接已复制到粘贴板!
要报告错误或改进文档,请登录到 Red Hat JIRA 帐户并提交问题。如果您没有 Red Hat Jira 帐户,则会提示您创建一个帐户。
流程
- 单击以下链接 以创建 ticket。
- 在 Summary 中输入问题的简短描述。
- 在 Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
- 点 Submit 创建问题,并将问题路由到适当的文档团队。
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
熟悉新编程语言或技术的最佳方法是创建"Hello World"应用程序。您可以使用 Maven 作为项目管理工具,为 JBoss EAP 创建"Hello World"应用。
要创建 Hello World 应用程序,请进行部署并测试部署,请按照以下步骤操作:
- 裸机部署
- OpenShift Container Platform 部署
第 1 章 为 hello world 应用创建一个 Maven 项目 复制链接链接已复制到粘贴板!
Maven 项目包含 pom.xml 配置文件,具有创建应用所需的目录结构。您可以配置 pom.xml 配置文件,以添加应用的依赖项。
要为 hello world 应用程序创建 Maven 项目,请按照以下步骤操作:
1.1. 使用 maven-archetype-webapp创建一个 Maven 项目 复制链接链接已复制到粘贴板!
使用 maven-archetype-webapp archetype 创建一个 Maven 项目,用于构建用于 JBoss EAP 部署的应用程序。Maven 提供不同的架构类型,用于基于特定于项目类型的模板创建项目。maven-archetype-webapp 创建一个项目,其中包含开发简单 web-applications 所需的结构。
先决条件
- 您已安装了 Maven。如需更多信息,请参阅 下载 Apache Maven。
流程
使用
mvn命令设置 Maven 项目。该命令创建项目的目录结构以及pom.xml配置文件。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导航到生成的目录。
cd helloworld
$ cd helloworldCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在文本编辑器中打开生成的
pom.xml配置文件。 在 <name&
gt;部分的内容。helloworld Maven Webapp</name> 行后,删除>pom.xml配置文件的 <project确保文件类似如下:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 内容已被删除,因为应用程序不需要它。
1.2. 在 Maven 项目中定义属性 复制链接链接已复制到粘贴板!
您可以在 Maven pom.xml 配置文件中定义属性,作为值的所有者。将 JBoss EAP 服务器的值定义为属性,以在配置中一致地使用该值。
先决条件
您已初始化了一个 Maven 项目。
如需了解更多信息,请参阅 为 JBoss EAP hello world 应用初始化 Maven 项目。
流程
定义属性 &
lt;version.server> 作为您要在其上部署配置的应用程序的 JBoss EAP 版本。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. 在 Maven 项目中定义存储库 复制链接链接已复制到粘贴板!
定义工件和插件存储库,Maven 会在其中查找要下载的工件和插件。
先决条件
您已初始化了一个 Maven 项目。
如需了解更多信息,请参阅 为 JBoss EAP hello world 应用初始化 Maven 项目。
1.4. 将 JBoss EAP BOM 作为依赖项管理导入到 Maven 项目中 复制链接链接已复制到粘贴板!
导入带有 Tools Bill of materials (BOM)的 JBoss EAP EE,以控制运行时 Maven 依赖项的版本。当您在 < dependencyManagement& gt; 部分中指定 BOM 时,您不需要单独指定 提供 的范围中定义的 Maven 依赖项版本。
先决条件
您已初始化了一个 Maven 项目。
如需了解更多信息,请参阅 为 JBoss EAP hello world 应用初始化 Maven 项目。
流程
在
pom.xml配置文件的 properties 部分为 BOM 版本添加属性。<properties> .... <version.bom.ee>${version.server}</version.bom.ee> </properties><properties> .... <version.bom.ee>${version.server}</version.bom.ee> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 属性 <
version.server> 中定义的值用作 BOM 版本的值。导入 JBoss EAP BOM 依赖关系管理。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. 在 Maven 项目中添加插件管理 复制链接链接已复制到粘贴板!
将 Maven 插件管理部分添加到 pom.xml 配置文件中,以获取 Maven CLI 命令所需的插件。
先决条件
您已初始化了一个 Maven 项目。
如需了解更多信息,请参阅 为 JBoss EAP hello world 应用初始化 Maven 项目。
流程
在 <
properties> 部分中,定义wildfly-maven-plugin和maven-war-plugin的版本。<properties> ... <version.plugin.wildfly>4.1.1.Final</version.plugin.wildfly> <version.plugin.war>3.3.2</version.plugin.war> </properties><properties> ... <version.plugin.wildfly>4.1.1.Final</version.plugin.wildfly> <version.plugin.war>3.3.2</version.plugin.war> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 &
lt;gt;。project> 部分的&<build> 部分添加 <pluginManagementCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6. 验证 maven 项目 复制链接链接已复制到粘贴板!
验证您配置的 Maven 项目。
先决条件
您已定义了 Maven 属性。
如需更多信息,请参阅 Maven 项目中的定义属性。
您已定义了 Maven 存储库。
如需更多信息 ,请参阅在 Maven 项目中定义存储库。
您已将 JBoss EAP Bill 材料(BOMs)导入为依赖项管理。
如需更多信息,请参阅在 Maven 项目中将 JBoss EAP BOM 导入为依赖项管理。
您已添加了插件管理。
流程
安装本地添加到
pom.xml中的 Maven 依赖项。mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您会看到类似如下的输出:
... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ...
... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 创建一个 hello world servlet 复制链接链接已复制到粘贴板!
创建一个 servlet,它将在访问时返回 "Hello world!"。
在此过程中,<application_home> 指向包含应用程序 pom.xml 配置文件的目录。
先决条件
您已创建了一个 Maven 项目。
如需更多信息,请参阅为 Hello World 应用创建一个 Maven 项目。
流程
在 <
dependencyManagement> 部分后,将所需的依赖项添加到pom.xml配置文件。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意依赖项在没有版本的情况下定义,因为
jboss-eap-ee-with-toolsBOM 在 <dependencyManagement> 部分中导入。- 进入 < application_home> 目录。
创建一个用于存储 Java 文件的目录。
mkdir -p src/main/java/org/jboss/as/quickstarts/helloworld
$ mkdir -p src/main/java/org/jboss/as/quickstarts/helloworldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前往新目录。
cd src/main/java/org/jboss/as/quickstarts/helloworld
$ cd src/main/java/org/jboss/as/quickstarts/helloworldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 return "Hello World!" 的 Servlet
HelloWorldServlet.java。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
@WebServlet ("/HelloWorld")注释为 JBoss EAP 提供以下信息:- 此类是 servlet。
在 URL " <application_URL> /HelloWorld" 中提供 servlet。
例如,如果 JBoss EAP 在 localhost 上运行,且位于默认的 HTTP 端口 8080,则 URL 为
http://localhost:8080/helloworld/HelloWorld。
进入 < application_home>/src/main/webapp 目录。
您会找到 Maven 创建的"index.jsp"文件。当您访问应用程序时,此文件会输出 "Hello World!"。
通过用以下内容替换其内容,更新 "index.jsp" 文件,以重定向到 Hello World servlet :
<html> <head> <meta http-equiv="Refresh" content="0; URL=HelloWorld"> </head> </html><html> <head> <meta http-equiv="Refresh" content="0; URL=HelloWorld"> </head> </html>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 进入 < application_home> 目录。
使用以下命令编译并打包应用程序作为 Web 归档(WAR):
mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ...
... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 将应用部署到服务器 复制链接链接已复制到粘贴板!
您可以在裸机或 OpenShift Container Platform 上运行的 JBoss EAP 服务器上部署应用程序。
要在裸机上运行的 JBoss EAP 服务器上部署应用程序,请按照以下步骤执行:
要在 OpenShift Container Platform 上运行的 JBoss EAP 服务器上部署应用程序,请按照以下步骤执行:
3.1. 将应用程序部署到裸机安装 复制链接链接已复制到粘贴板!
您可以使用 JBoss EAP 部署插件将应用部署到 JBoss EAP。
先决条件
您已创建了应用程序。
如需更多信息,请参阅创建 hello world servlet。
- JBoss EAP 正在运行。
流程
导航到应用程序根目录。
应用根目录包含
pom.xml配置文件。将以下构建配置添加到 <
project> 部分中的pom.xml配置文件,以定义应用程序存档文件名。<build> ... <finalName>${project.artifactId}</finalName> </build><build> ... <finalName>${project.artifactId}</finalName>1 </build>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将部署的名称设置为项目的工件 ID。
使用 JBoss EAP 部署插件构建和部署应用。
mvn package wildfly:deploy
$ mvn package wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在浏览器中访问地址
http://localhost:8080/helloworld/。您将被重定向到 http://localhost:8080/helloworld/HelloWorld,您会收到以下信息:
Hello World!
Hello World!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 将应用程序部署到 OpenShift Container Platform 复制链接链接已复制到粘贴板!
您可以使用 Source-to-image (S2I)工作流将应用程序部署到 OpenShift Container Platform 上的 JBoss EAP。S2I 工作流从 Git 存储库获取源代码,并将它注入到基于您要使用的语言和框架的容器中。在 S2I 工作流完成后,会编译 src 代码,应用将被打包并部署到 JBoss EAP 服务器。
3.2.1. 准备应用程序以便在 OpenShift Container Platform 上部署 复制链接链接已复制到粘贴板!
OpenShift Container Platform 使用托管在 Git 存储库中的应用程序。要在 OpenShift 上部署您的应用,您必须首先将应用推送到 Git 存储库。之后,您可以使用 JBoss EAP helm chart 来配置应用程序部署。
先决条件
您已创建了应用程序。
如需更多信息,请参阅创建 Hello World servlet。
- 您已创建了 Git 存储库。
流程
如果应用程序还没有位于其中,请将应用程序移到本地 Git 存储库。
mv -r helloworld/ <your_git_repo>
$ mv -r helloworld/ <your_git_repo>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
pom.xml配置文件中定义以下属性:<properties> ... <version.plugin.eap>1.0.0.Final-redhat-00013</version.plugin.eap> </properties><properties> ... <version.plugin.eap>1.0.0.Final-redhat-00013</version.plugin.eap>1 </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<version.plugin.eap> 定义 JBoss EAP Maven 插件的版本。
将 JBoss EAP maven 插件添加到 <
pluginManagement>,在 <; 部分。project> 部分的 <build>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
pom.xml配置文件中创建配置文件"openshift"。此配置集定义了在 OpenShift Container Platform 上部署所需的插件、功能软件包和层。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
wildfly-maven-plugin是一个 JBoss EAP 插件,用于在 OpenShift Container Platform 上部署应用程序置备 JBoss EAP 实例。- 2
功能包定义了功能包(包含用于动态置备服务器的功能的文件)。在这种情况下,我们需要 feature-packsorg.wildfly:wildfly-galleon-pack和org.wildfly.cloud:wildfly-cloud-galleon-pack。- 3
层定义要在调配的服务器中包含的层(来自配置的功能包)。每个层标识了一个或多个可以自行安装的服务器功能,或者与其他层结合使用。在我们的情形中,我们选择了cloud-server层,该层仅调配 JBoss EAP 的基本功能,非常适合云服务器。- 4
<name>ROOT.war</name> :定义应用程序 web 归档(WAR)的结果名称。如果指定了ROOT.war,则应用程序会在服务器的 root 路径上部署,否则会在 <name/>相对路径上部署。
验证应用程序是否编译。
mvn package -Popenshift
$ mvn package -PopenshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 将更改推送到您的存储库。
3.2.2. 使用 Helm 将应用程序部署到 OpenShift 上的 JBoss EAP 复制链接链接已复制到粘贴板!
使用 JBoss EAP Helm Chart 使用 Helm 配置和部署应用程序到 OpenShift 上的 JBoss EAP。
先决条件
您已准备了应用程序以在 OpenShift Container Platform 上部署。
您已在 OpenShift Container Platform 中创建了一个项目。
如需更多信息,请参阅使用项目。
已安装 OpenShift CLI (
oc)如需更多信息 ,请参阅安装 OpenShift CLI。
从您的机器登录到 OpenShift Container Platform。
如需更多信息,请参阅 OpenShift CLI 登录。
已安装 helm。
如需更多信息,请参阅安装 Helm。
流程
在应用程序 root directoy 中创建一个名为
charts的目录并导航到它。应用根目录是包含pom.xml配置文件的一个目录。mkdir charts; cd charts
$ mkdir charts; cd chartsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建文件
helm.yaml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Helm 中配置 JBoss EAP 仓库。
如果您之前没有将 JBoss EAP 仓库添加到 Helm,请添加它。
helm repo add jboss-eap https://jbossas.github.io/eap-charts/
$ helm repo add jboss-eap https://jbossas.github.io/eap-charts/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您已将 JBoss EAP 存储库添加到 Helm,请更新它。
helm repo update jboss-eap
$ helm repo update jboss-eapCopy to Clipboard Copied! Toggle word wrap Toggle overflow
使用 helm 部署应用程序。
helm install helloworld -f helm.yaml jboss-eap/eap8
$ helm install helloworld -f helm.yaml jboss-eap/eap8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 完成部署可能需要几分钟时间。
验证
获取指向部署的路由的 URL。
APPLICATION_URL=https://$(oc get route helloworld --template='{{ .spec.host }}') && echo "" && echo "Application URL: $APPLICATION_URL"$ APPLICATION_URL=https://$(oc get route helloworld --template='{{ .spec.host }}') && echo "" && echo "Application URL: $APPLICATION_URL"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在浏览器中导航至"应用程序 URL"。
您会在路径 "/HelloWorld" 重定向到 servlet,您会收到以下消息:
Hello World!
Hello World!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 测试在 JBoss EAP 上部署的应用程序 复制链接链接已复制到粘贴板!
为确保 JBoss EAP 上部署的 Hello World 应用正常工作,您可以添加集成测试。
要为在裸机上运行的 JBoss EAP 服务器上部署的应用程序添加测试,请按照以下步骤操作:
要为在 OpenShift Container Platform 上运行的 JBoss EAP 服务器上部署的应用程序添加测试,请按照以下步骤执行:
4.1. 添加集成测试所需的 Maven 依赖项和配置集 复制链接链接已复制到粘贴板!
要为应用程序创建集成测试,请添加所需的 Maven 依赖项。
先决条件
您已创建了一个 Maven 项目。
如需更多信息,请参阅为 hello world 应用创建一个 Maven 项目。
流程
在
pom.xml配置文件中定义以下属性:<properties> ... <version.plugin.failsafe>3.2.2</version.plugin.failsafe> </properties><properties> ... <version.plugin.failsafe>3.2.2</version.plugin.failsafe> </properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加测试所需的依赖项。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 定义一个配置文件,以添加集成测试所需的插件。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. 创建测试类来测试应用程序 复制链接链接已复制到粘贴板!
通过检查 Web 页面的 HTTP GET 是否返回 200 OK,创建一个集成测试,验证应用程序是否已在 OpenShift Container Platform 上的 JBoss EAP 上部署并在运行。
在此过程中,<application_home> 指向包含应用程序 pom.xml 配置文件的目录。
先决条件
您已将应用程序部署到 JBoss EAP。
如需更多信息,请参阅 构建和部署到服务器。
您已添加了 JUnit 测试所需的 Maven 依赖项。
如需更多信息,请参阅 为集成测试所需的 Maven 依赖项和配置集。
流程
- 进入 < application_home> 目录。
创建用于存储测试类的目录。
mkdir -p src/test/java/org/jboss/as/quickstarts/helloworld
$ mkdir -p src/test/java/org/jboss/as/quickstarts/helloworldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前往新目录。
cd src/test/java/org/jboss/as/quickstarts/helloworld
$ cd src/test/java/org/jboss/as/quickstarts/helloworldCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个 Java 类
HelloWorldServletIT.java来测试部署。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. 测试在裸机上运行的 JBoss EAP 上部署的应用程序 复制链接链接已复制到粘贴板!
测试部署在裸机上运行的 JBoss EAP 上的应用。
先决条件
您已创建了测试类。
如需更多信息,请参阅创建测试类来测试应用程序
- 要测试的应用程序部署在 JBoss EAP 上。
- JBoss EAP 正在运行。
流程
- 进入 < application_home> 目录。
使用带有
integration-testing配置集的verify命令运行集成测试。mvn verify -Pintegration-testing
$ mvn verify -Pintegration-testingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
测试部署到 OpenShift Container Platform 上的 JBoss EAP 的应用程序。
先决条件
您已创建了测试类。
如需更多信息,请参阅创建测试类来测试应用程序
流程
- 将更改推送到您的 Git 存储库。
- 进入 < application_home> 目录。
使用
verify命令运行测试,激活integration-testing配置集并指定应用程序的 URL。mvn verify -Pintegration-testing -Dserver.host=https://$(oc get route helloworld --template='{{ .spec.host }}')$ mvn verify -Pintegration-testing -Dserver.host=https://$(oc get route helloworld --template='{{ .spec.host }}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意测试使用 SSL/TLS 连接到部署的应用程序。因此,您需要运行测试的机器信任证书。
要信任证书,您必须将其添加到 Java 信任存储中。
Example
keytool -trustcacerts -keystore _<path-to-java-truststore>_ -storepass _<trust-store-password>_ -importcert -alias _<alias-for-the-certificate>_ -file _<path-to-certificate>_/_<certificate-name>_
$ keytool -trustcacerts -keystore _<path-to-java-truststore>_ -storepass _<trust-store-password>_ -importcert -alias _<alias-for-the-certificate>_ -file _<path-to-certificate>_/_<certificate-name>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
更新于 2024-02-08