在 JBoss EAP 上使用 Fuse
前言 复制链接链接已复制到粘贴板!
要开始使用 Fuse,您需要下载并安装 JBoss EAP 容器的文件。此处的信息和说明指导您安装、开发和构建第一个 Fuse 应用程序。
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。这些更改将在即将发行的几个发行本中逐渐实施。详情请查看我们的 CTO Chris Wright 信息。
第 1 章 在 JBoss EAP 中使用 Fuse 复制链接链接已复制到粘贴板!
本章介绍了 JBoss EAP 的 Fuse,并解释了如何在 JBoss EAP 容器上安装、开发和构建第一个 Fuse 应用程序。
详情请查看以下主题:
1.1. 关于 JBoss EAP 上的 Fuse 复制链接链接已复制到粘贴板!
JBoss Enterprise Application Platform (EAP)基于 Eclipse Foundation 中的 Jakarta EE 技术(以前为 Java EE),最初是为开发企业应用的用例而创建的。JBoss EAP 的特征是实施服务和标准化 Java API 的定义模式(例如,持久性、消息传递、安全等)。近年来,此技术发展变得更为轻量级,它介绍了 CDI 以进行依赖性注入和简化的企业 Java Bean 注释。
此容器技术的不同特性包括:
- 特别适合在单机模式下运行。
- 许多标准服务(如持久性、消息传递、安全等)都预先配置并提供开箱即用。
- 应用程序 WAR 通常较小且轻量级(因为容器中预安装了很多依赖项)。
- 标准化、向后兼容的 Java API.
1.2. 在 JBoss EAP 上安装 Fuse 复制链接链接已复制到粘贴板!
可以从红帽客户门户下载 JBoss EAP 上的 Fuse 7.11 标准安装软件包。它安装 JBoss EAP 容器的标准装配,并提供完整的 Fuse 技术堆栈。
先决条件
- 您必须 在红帽客户门户网站中 有一个完全订阅帐户。
- 您必须登录到客户门户网站。
- 您必须已下载 JBoss EAP。
- 您必须已在 JBoss EAP 上下载了 Fuse。
- 您必须已在 JBoss EAP Update 5 上下载 Fuse。
流程
从 shell 提示符运行 JBoss EAP 安装程序,如下所示:
java -jar DOWNLOAD_LOCATION/jboss-eap-7.4.5-installer.jar
java -jar DOWNLOAD_LOCATION/jboss-eap-7.4.5-installer.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在安装过程中:
- 接受条款和条件。
-
为 JBoss EAP 运行时选择您首选的安装路径
EAP_INSTALL。 - 创建管理用户,并记下这些管理用户凭据。
- 您可以接受剩余屏幕上的默认设置。
-
打开 shell 提示符,并将目录更改为
EAP_INSTALL。 在
EAP_INSTALL目录中,在 EAP 安装程序上运行 Fuse,如下所示:java -jar DOWNLOAD_LOCATION/fuse-eap-installer-7.11.1.jar
java -jar DOWNLOAD_LOCATION/fuse-eap-installer-7.11.1.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow - (可选) 要从命令行使用 Apache Maven,您需要安装和配置 Maven,如 在 本地设置 Maven所述。
在 JBoss EAP Update 5 补丁中应用 Fuse。
1.3. 在 JBoss EAP 上构建第一个 Fuse 应用程序 复制链接链接已复制到粘贴板!
这一组指令可帮助您在 JBoss EAP 上构建第一个 Fuse 应用程序。
先决条件
- 红帽客户门户上需要一个完整的订阅 帐户。
- 您必须登录到客户门户网站。
- 您必须在 JBoss EAP 上下载并成功安装了 Fuse。
- 您必须已下载并成功安装了 JBoss Tools 安装程序。
流程
在 IDE 环境中,创建一个新项目,如下所示:
- 选择 File→New→Fuse Integration Project。
-
在 Project Name 字段中,输入
eap-camel。 - 点击 Next。
在 Select a Target Environment 窗格中,选择以下设置:
- 选择 Standalone 作为部署平台。
-
选择 Wildfly/Fuse on EAP 作为运行时环境,然后使用 Runtime (可选) 下拉菜单选择
JBoss EAP 7.x Runtime服务器作为目标运行时。
- 选择目标运行时后,将自动为您选择 Camel Version,并且字段将灰显。
- 点击 Next。
- 在 Advanced Project Setup 窗格中,选择 Spring Bean - Spring DSL 模板。
点 Finish。
重要如果这是您第一次构建 Fuse 项目,则 需要几分钟时间 才能完成向导生成项目。这是因为它从远程 Maven 存储库下载依赖项。不要中断向导,或在后台构建项目时关闭窗口。
- 如果系统提示您打开关联的 Fuse Integration 视角,请单击 Yes。
- 等待 JBoss 工具下载所需的工件并在后台构建项目。
将项目部署到服务器,如下所示:
-
在 Servers 视图中(Fuse Integration 视角的右上角),如果服务器尚未启动,请选择
Red Hat JBoss EAP 7.4 Runtime服务器,然后单击绿色箭头来启动它。 等待您在 Console 视图中看到类似如下的信息:
14:47:07,283 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: JBoss EAP 7.4.0.GA (WildFly Core 10.1.11.Final-redhat-00001) started in 3301ms - Started 314 of 576 services (369 services are lazy, passive or on-demand)
14:47:07,283 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: JBoss EAP 7.4.0.GA (WildFly Core 10.1.11.Final-redhat-00001) started in 3301ms - Started 314 of 576 services (369 services are lazy, passive or on-demand)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 服务器启动后,切回到 Servers 视图,右键单击服务器,然后从上下文菜单中选择 Add 和 Remove。
-
在 Add and Remove 对话框中,选择
eap-camel项目并点 Add >。 - 点 Finish。
-
在 Servers 视图中(Fuse Integration 视角的右上角),如果服务器尚未启动,请选择
验证项目是否正常工作,如下所示:
-
浏览到以下 URL 以访问
eap-camel项目中运行的服务: http://localhost:8080/camel-test-spring?name=Kermit -
浏览器窗口应当显示响应
Hello Kermit。
-
浏览到以下 URL 以访问
取消部署项目,如下所示:
-
在 Servers 视图中,选择
Red Hat JBoss EAP 7.4 Runtime服务器。 - 右键单击服务器,然后从上下文菜单中选择"添加和删除"。
-
在 Add and Remove 对话框中,选择您的
eap-camel项目,再单击 < Remove。 - 点 Finish。
-
在 Servers 视图中,选择
第 2 章 本地设置 Maven 复制链接链接已复制到粘贴板!
典型的 Fuse 应用程序开发使用 Maven 来构建和管理项目。
以下主题描述了如何在本地设置 Maven:
2.1. 准备设置 Maven 复制链接链接已复制到粘贴板!
Maven 是一个来自 Apache 的免费开源、构建工具。通常,您可以使用 Maven 来构建 Fuse 应用程序。
流程
- 从 Maven 下载页面 下载 Maven 的最新版本。
确定您的系统已连接到互联网。
在构建项目时,Maven 会搜索外部存储库并下载所需的工件。Maven 查找可通过互联网访问的存储库。
您可以更改此行为,以便 Maven 仅搜索本地网络上的存储库。也就是说,Maven 可以在离线模式下运行。在离线模式中,Maven 会在其本地存储库中查找工件。请参阅 第 2.3 节 “使用本地 Maven 存储库”。
2.2. 在 Maven 中添加红帽软件仓库 复制链接链接已复制到粘贴板!
要访问 Red Hat Maven 存储库中的工件,您需要将这些存储库添加到 Maven 的 settings.xml 文件中。Maven 在用户主目录的 .m2 目录中查找 settings.xml 文件。如果没有用户指定的 settings.xml 文件,Maven 将使用 M2_HOME/conf/ 文件中的系统级 settings.xml 文件。
settings.xml
前提条件
您知道要在其中添加红帽存储库的 settings.xml 文件的位置。
流程
在 settings.xml 文件中,为红帽软件仓库添加 存储库 元素,如下例所示:
2.3. 使用本地 Maven 存储库 复制链接链接已复制到粘贴板!
如果您在没有互联网连接的情况下运行容器,并且需要部署具有不可用依赖项的应用程序,您可以使用 Maven 依赖项插件将应用的依赖项下载到 Maven 离线存储库中。然后,您可以将这个自定义的 Maven 离线存储库分发到没有互联网连接的机器。
流程
在包含
pom.xml文件的项目目录中,运行以下命令来下载 Maven 项目的存储库,如下所示:mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.0:go-offline -Dmaven.repo.local=/tmp/my-project
mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.0:go-offline -Dmaven.repo.local=/tmp/my-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,构建项目所需的 Maven 依赖项和插件会下载到
/tmp/my-project目录中。- 在内部将这个自定义 Maven 离线存储库分发到没有互联网连接的任何机器。
2.4. 使用环境变量或系统属性设置 Maven 镜像 复制链接链接已复制到粘贴板!
在运行应用程序时,您需要访问 Red Hat Maven 存储库中的工件。这些软件仓库被添加到 Maven 的 settings.xml 文件中。Maven 检查 settings.xml 文件的以下位置:
- 查找指定的 url
-
如果没有找到查找
${user.home}/.m2/settings.xml -
如果没有找到查找
${maven.home}/conf/settings.xml -
如果没有找到查找
${M2_HOME}/conf/settings.xml -
如果没有找到位置,则创建空的
org.apache.maven.settings.Settings实例。
2.4.1. 关于 Maven 镜像 复制链接链接已复制到粘贴板!
Maven 使用一组远程存储库来访问工件,这些工件目前在本地存储库中不可用。存储库列表几乎始终包含 Maven Central 存储库,但对于 Red Hat Fuse,它还包含 Maven 红帽存储库。在某些情况下,如果无法或允许访问不同的远程存储库,您可以使用 Maven 镜像机制。镜像会将特定存储库 URL 替换为不同的存储库 URL,因此搜索远程工件时的所有 HTTP 流量都可以定向到单个 URL。
2.4.2. 将 Maven mirror 添加到 settings.xml 复制链接链接已复制到粘贴板!
要设置 Maven 镜像,请在 Maven 的 settings.xml 中添加以下部分:
<mirror>
<id>all</id>
<mirrorOf>*</mirrorOf>
<url>http://host:port/path</url>
</mirror>
<mirror>
<id>all</id>
<mirrorOf>*</mirrorOf>
<url>http://host:port/path</url>
</mirror>
如果在 settings.xml 文件中找不到上述部分,则无法使用镜像。要指定全局镜像但不提供 XML 配置,您可以使用系统属性或环境变量。
2.4.3. 使用环境变量或系统属性设置 Maven 镜像 复制链接链接已复制到粘贴板!
要使用环境变量或系统属性设置 Maven 镜像,您可以添加:
-
名为 MAVEN_MIRROR_URL 的环境变量到
bin/setenv文件 -
名为 mavenMirrorUrl 的系统属性到
etc/system.properties文件
2.4.4. 使用 Maven 选项指定 Maven 镜像 url 复制链接链接已复制到粘贴板!
要使用替代的 Maven 镜像 url (环境变量或系统属性指定),在运行应用程序时使用以下 maven 选项:
-DmavenMirrorUrl=mirrorId::mirrorUrlfor example,
-DmavenMirrorUrl=my-mirror::http://mirror.net/repository-DmavenMirrorUrl=mirrorUrl例如,
-DmavenMirrorUrl=http://mirror.net/repository。在本例中,<mirror> 的 <id> 只是一个镜像。
2.5. 关于 Maven 工件和协调 复制链接链接已复制到粘贴板!
在 Maven 构建系统中,基本构建块是一个 构件。构建后,工件的输出通常是一个存档,如 JAR 或 WAR 文件。
Maven 的一个重要方面是能够定位工件并管理它们之间的依赖关系。Maven 协调 是一组用于标识特定工件位置的值。基本协调以以下格式有三个值:
groupId:artifactId:version
有时,Maven 使用 打包值或打包 值和类器值增强基本协调。 Maven 协调可以具有以下格式之一:
groupId:artifactId:version groupId:artifactId:packaging:version groupId:artifactId:packaging:classifier:version
groupId:artifactId:version
groupId:artifactId:packaging:version
groupId:artifactId:packaging:classifier:version
以下是值的描述:
- groupdId
-
定义工件名称的范围。您通常使用所有或包名的一部分作为组 ID。例如,
org.fusesource.example。 - artifactId
- 定义相对于组 ID 的工件名称。
- version
-
指定工件的版本。版本号最多可有四个部分:
n.n.n.n.n,其中版本号的最后一部分可以包含非数字字符。例如,1.0-SNAPSHOT 的最后一部分是字母子字符串,即0-SNAPSHOT。 - packaging
-
定义构建项目时生成的打包实体。对于 OSGi 项目,打包是
捆绑的。默认值为jar。 - classifier
- 可让您区分从同一 POM 构建的工件,但具有不同的内容。
工件的 POM 文件中的元素定义了工件的组 ID、工件 ID、打包和版本,如下所示:
要定义对上述工件的依赖项,您要将以下 dependency 元素添加到 POM 文件中:
不需要在上述依赖项中指定 bundle 软件包类型,因为捆绑包只是特定类型的 JAR 文件,jar 是默认的 Maven 软件包类型。如果您需要在依赖项中明确指定打包类型,您可以使用 type 元素。