第 10 章 将项目发布到红帽 Fuse
本教程介绍了将项目发布到红帽 Fuse 的过程。它假设您已在运行 Red Hat Fuse 工具的同一机器上安装了一个 Red Hat Fuse 实例。
目标
在本教程中,您将完成以下任务:
- 定义 Red Hat Fuse 服务器
- 配置发布选项
-
启动 Red Hat Fuse 服务器并发布
ZooOrderApp
项目 - 连接到 Red Hat Fuse 服务器
-
验证
ZooOrderApp
项目的捆绑包是否已成功构建并发布 -
卸载
ZooOrderApp
项目
先决条件
在开始本教程前:
- 访问 Red Hat Fuse 实例
- 在您的计算机上安装 Java 8
ZooOrderApp 项目由以下之一生成:
完成 第 9 章 使用 JUnit 测试路由 教程。
or
-
完成 第 2 章 设置您的环境 教程,并将项目的
blueprint.xml
文件替换为提供的blueprintContexts/blueprint3.xml
文件,如 “关于资源文件”一节 所述。
定义 Red Hat Fuse Server
定义服务器:
- 打开 Fuse Integration 透视图。
- 单击右下角的 Servers 选项卡,以打开 Servers 视图。
点 No servers 可用。点击此链接来创建新 server… 链接,以打开 Define a New Server 页面。
注意要在已经定义时定义新服务器,请在 Servers 视图中右键单击,然后选择 New
Server。 扩展 Red Hat JBoss Middleware 节点以公开可用的服务器选项:
- 选择 Red Hat Fuse 服务器。
接受 服务器主机名(localhost)和 服务器名称 (Fuse n.n Runtime Server)的默认值,然后单击 Next 以打开 Runtime 页面:
注意如果您尚未安装 Fuse,现在可以使用 Download and install runtime 链接下载它。
如果您已经定义了服务器,工具会跳过此页面,并显示配置详情页面。
- 接受 名称 的默认值。
- 单击 Home Directory 字段旁边的 Browse,以导航到安装并选择它。
从 Execution Environment 旁边的下拉菜单中选择运行时 JRE。
选择 JavaSE-1.8 (推荐)。如有必要,单击 Environments 按钮,将其从列表中选中。
注意Fuse 服务器需要 Java 8 (推荐)。要为 Execution Environment 选择它,您必须已安装了它。
- Alternate JRE 选项保留原样。
点 Next 以保存 Fuse 服务器的运行时定义,并打开 Fuse 服务器配置详情页面 :
接受 SSH 端口 的默认端口(8101)。
运行时使用 SSH 端口来连接服务器的 Karaf shell。如果此默认不正确,您可以通过在 Red Hat Fuse
installDir/etc/org.apache.karaf.shell.cfg
文件中查找正确的端口号。在 用户名 中,输入用于登录服务器的名称。
这是存储在 Red Hat Fuse installDir'/etc/users.properties' 文件中的用户名。
注意如果在
/etc/users.properties
文件中激活(未添加) 默认用户,工具将使用默认用户名和密码自动填充用户名和密码。如果没有设置,您可以使用格式
user=password,role
(如joe=secret,Administrator
)添加到该文件中,也可以使用 karafjaas
命令集设置:-
jaas:realms
swig-wagonto 列出域 -
jaas:manage --index 1
swig- swigto 编辑第一个(server)域 -
jaas:useradd <username> <password
> HEKETI- swigto 添加用户和关联的密码 -
jaas:roleadd <username> Administrator
wagon-rhacmto 指定新用户的角色 jaas:update
HEKETI- swigto 使用新的用户信息更新域如果已经为服务器选择了 jaas 域,您可以通过发出
JBossFuse:karaf@root>
jaas:users
来发现用户名。
-
在 Password 中,键入 用户名 所需的密码以登录到服务器。
这是在红帽 Fuse 的
installDir/etc/users.properties
文件中或 karafjaas
命令中设定的密码。点 Finish。
Runtime Server [stopped, Synchronized] 会出现在 Servers 视图中。
在 Servers 视图中,展开 Runtime Server:
JMX[Disconnected] 在 Runtime Server [stopped, Synchronized] 条目下显示为节点。
配置发布选项
使用发布选项,您可以配置 ZooOrderApp
项目如何以及何时发布到正在运行的服务器:
- 在保存对项目所做的更改后自动自动
- 更改并保存项目后自动配置的间隔
- 选择发布操作时手动
在本教程中,您可以在保存对 ZooOrderApp
项目的更改时配置立即发布。要做到这一点:
- 在 Servers 视图中,双击 Runtime Server [stopped, Synchronized] 条目,以显示其概览。
在服务器的 Overview 页面中,展开 Publishing 部分以公开选项。
确保启用 资源更改时,自动发布 选项。
(可选)更改 发布间隔 值,以便在进行更改时加快或延迟发布项目。
-
在 Servers 视图中,点
。
等待几秒钟,使服务器启动。当它这样做时:
Terminal 视图显示 splash 屏幕:
Servers 视图显示:
JMX Navigator 显示 n.n Runtime Server[Disconnected :
在 Servers 视图中,右键单击 n.n Runtime Server [Started],然后选择 Add and Remove 以打开 Add 和 Remove 页面:
确保 如果服务器启动,则立即检查发布更改。
选择
ZooOrderApp
并点 Add 将其分配给 Fuse 服务器:点 Finish。
Servers 视图应该显示以下内容:
Runtime Server [Started, Synchronized]
注意对于服务器,同步 意味着服务器上发布的所有模块都与其本地对应的项相同。
ZooOrderApp [Started, Synchronized]
注意对于模块,sync 表示公布的模块与其本地对应的模块相同。由于启用了自动发布,因此对 ZooOrderApp 项目所做的更改将以秒为单位发布(根据 发布间隔的值)。
- JMX[Disconnected]
连接到运行时服务器
连接到运行时服务器后,您可以看到 ZooOrderApp
项目的已发布元素并与它们交互。
- 在 Servers 视图中,双击 JMX[Disconnected] 以连接到运行时服务器。
在 JMX Navigator 中,展开
Camel
文件夹以公开ZooOrderApp
的元素。点 Bundles 节点,使用运行时服务器上安装的捆绑包列表填充 Properties 视图:
在 Search 字段中,键入 ZooOrderApp。显示对应的捆绑包:
注意或者,您可以在 Terminal 视图中发出
osgi:list
命令,以查看在服务器运行时上安装的生成的捆绑包列表。该工具对 OSGi 捆绑包使用不同的命名方案,由osgi:list
命令显示。在这种情况下,命令会返回Camel Blueprint Quickstart
,它出现在安装捆绑包列表的末尾。在项目的
pom.xml
文件的 <build
> 部分中,您可以找到捆绑包的符号链接名称及其捆绑包名称(OSGi)在maven-bundle-plugin
条目中列出的:
卸载 ZooOrderApp 项目
您不需要断开 JMX 连接或停止服务器来卸载发布的资源。
从运行时服务器中删除 ZooOrderApp
资源:
- 在 Servers 视图中,右键单击 n.n Runtime Server 以打开上下文菜单。
选择 "添加和删除" :
-
在 Configured 列中,选择
ZooOrderApp
,然后单击 Remove 将ZooOrderApp
资源移到 Available 列中。 - 点 Finish。
在 Servers 视图中,右键单击 JMX[Connected],然后单击 Refresh。
JMX[Connected] 下的
Camel
树会消失。注意在 JMX Navigator 中,Server Connections > n.n Runtime Server[Connected] 下的
Camel
树也会消失。- 当 Properties 视图中显示的 Bundles 页面时,向下滚动到列表的末尾,以验证 ZooOrderApp 的捆绑包不再被列出。