第 10 章 将项目发布到红帽 Fuse

本教程介绍了将项目发布到红帽 Fuse 的过程。它假设您在运行 Red Hat Fuse 工具的同一机器上安装了 Red Hat Fuse 实例。

目标

在本教程中,您将完成以下任务:

  • 定义 Red Hat Fuse 服务器
  • 配置发布选项
  • 启动 Red Hat Fuse 服务器并发布 ZooOrderApp 项目
  • 连接到 Red Hat Fuse 服务器
  • 验证 ZooOrderApp 项目的捆绑包是否已成功构建并发布
  • 卸载 ZooOrderApp 项目

先决条件

开始此教程前:

定义 Red Hat Fuse Server

定义服务器:

  1. 打开 Fuse Integration 视角。
  2. 单击右下角的 Servers 选项卡,以打开 Servers 视图。
  3. No servers are available.点击此链接来创建新 server…​ 链接,以打开 Define a New Server 页面。

    注意

    要在已经定义新的服务器时定义新的服务器,请在 Servers 视图中右键单击,然后选择 NewServer

  4. 扩展 Red Hat JBoss Middleware 节点以公开可用的服务器选项:

    tutDefineNewServer
  5. 选择红帽 Fuse 服务器。
  6. 接受 服务器主机名(localhost)和 服务器名称 (Fuse n.n Runtime Server)的默认值,然后点 Next 打开 Runtime 页面:

    tutFuseRuntimeDef1
    注意

    如果您还没有安装 Fuse,则可以使用 Download and install runtime 链接下载它。

    如果您已经定义了服务器,工具会跳过此页面,而是显示配置详情页面。

  7. 接受 Name 的默认值。
  8. 单击 Home Directory 字段旁边的 Browse,以导航到安装并选择它。
  9. Execution Environment 旁边的下拉菜单中选择运行时 JRE。

    选择 JavaSE-1.8 (推荐)。如有必要,点 Environments 按钮从列表中选择它。

    注意

    Fuse 服务器需要 Java 8 (推荐)。要为 执行环境选择它,您必须已安装了它。

  10. Alternate JRE 选项保留原样。
  11. Next 保存 Fuse Server 的运行时定义,并打开 Fuse 服务器配置详情页面

    NewServerDetailsTut
  12. 接受 SSH 端口 的默认端口(8101)。

    运行时使用 SSH 端口来连接服务器的 Karaf shell。如果此默认是不正确的,您可以通过查看 Red Hat Fuse installDir/etc/org.apache.karaf.shell.cfg 文件来发现正确的端口号。

  13. User Name 中,输入用于登录到服务器的名称。

    这是存储在 Red Hat Fuse installDir'/etc/users.properties' 文件中的用户名。

    注意

    如果在 /etc/users.properties 文件中激活了默认用户(未提供),工具会使用默认用户名和密码自动填充用户名和密码。

    如果还没有设置,您可以使用 user=password,role (如 joe=secret,Administrator)格式向该文件添加一个,也可以使用 karaf jaas 命令设置它:

    • jaas:realms mvapich-DESTINATIONto 列出域
    • JAAS:manage --index 1 mvapich-wagon 以编辑第一个(server)域
    • JAAS:useradd <username> <password > mvapich-mvapichto 添加用户和关联的密码
    • JAAS:roleadd <username> Administrator mvapich-wagonto 指定新用户的角色
    • JAAS:update mvapich-wagonto 使用新用户信息更新域

      如果已经为服务器选择了 jaas 域,您可以通过发出 JBossFuse:karaf@root>jaas:users 命令来发现用户名。

  14. Password 中,键入用户名登录 服务器所需的密码。

    这是在 Red Hat Fuse 的 installDir/etc/users.properties 文件中或 karaf jaas 命令中设置的密码。

  15. Finish

    运行时服务器 [stopped, Synchronized] 会出现在 Servers 视图中。

  16. Servers 视图中,展开 Runtime Server:

    JBFuseServersView

    JMX[Disconnected]Runtime Server [stopped, Synchronized] 条目下显示为节点。

配置发布选项

使用发布选项,您可以配置 ZooOrderApp 项目如何以及何时将 ZooOrderApp 项目发布到正在运行的服务器:

  • 在保存对项目所做的更改时,立即自动执行
  • 在更改并保存项目后,自动配置间隔
  • 手动,当您选择 publish 操作时

在本教程中,您可以在保存对 ZooOrderApp 项目的更改时配置立即发布。要做到这一点:

  1. Servers 视图中,双击 Runtime Server [stopped, Synchronized] 条目来显示其概述。
  2. 在服务器的 Overview 页面中,展开 Publishing 部分以公开选项。

    srvEditorPubOpts

    确保启用了 资源更改时 Automatically publish publish 选项。

    (可选)更改 Publishing interval 的值,以便在进行更改时加快或延迟发布项目。

  3. Servers 视图中,点 Start the server
  4. 等待几秒钟,使服务器启动。当它有时:

    • Terminal 视图显示 splash 屏幕:

      tutServerStartShellV
    • Servers 视图显示:

      tutServerStartServerV
    • JMX Navigator 显示 n.n Runtime Server[Disconnected:

      tutServerStartJMXNav
  5. Servers 视图中,右键单击 n.n Runtime Server [Started],然后选择 Add and Remove 打开 Add and Remove 页面:

    tutAddRemove1

    确保 选项 如果启动了 server,则将立即检查发布更改

  6. 选择 ZooOrderApp 并点 Add 来将其分配给 Fuse 服务器:

    tutAddRemove2
  7. Finish

    Servers 视图应该显示以下内容:

    tutCBRrtePublishedSrvV
    • 运行时服务器 [Started, Synchronized]

      注意

      对于服务器,同步 意味着服务器上发布的所有模块都与其本地对应的模块相同。

    • ZooOrderApp [Started, Synchronized]

      注意

      对于模块 同步,sync 表示已发布的模块与其本地对应的模块相同。因为启用自动发布,所以对 ZooOrderApp 项目所做的更改会按秒发布(根据出 间隔的值)。

    • JMX[断开连接]

连接到运行时服务器

连接到运行时服务器后,您可以看到 ZooOrderApp 项目的已发布的元素并与它们交互。

  1. Servers 视图中,双击 JMX[Disconnected] 以连接到运行时服务器。
  2. JMX Navigator 中,展开 Camel 文件夹以公开 ZooOrderApp 的元素。

    tutJMXconnected
  3. Bundles 节点,使用运行时服务器上安装的捆绑包列表填充 Properties 视图:

    tutCBRrouteBundleInstall
  4. Search 字段中,键入 ZooOrderApp。此时会显示对应的捆绑包:

    tutCBRrouteBundleSearch
    注意

    或者,您可以在 Terminal 视图中发出 osgi:list 命令,以查看在服务器运行时上安装的生成的捆绑包列表。该工具为 osgi:list 命令显示的 OSGi 捆绑包使用不同的命名方案。在这种情况下,命令会返回 Camel Blueprint Quickstart,显示在已安装的捆绑包列表的末尾。

    在项目的 pom.xml 文件的 < build > 部分中,您可以找到 maven-bundle-plugin 条目中列出的捆绑包符号名称及其捆绑包名称(OSGi):

    tutBundleNamesPom

卸载 ZooOrderApp 项目

注意

您不需要断开 JMX 连接或停止服务器来卸载已发布的资源。

从运行时服务器中删除 ZooOrderApp 资源:

  1. Servers 视图中,右键单击 n.n Runtime Server 以打开上下文菜单。
  2. 选择 Add and Remove:

    tutUnpubCBRroute
  3. Configured 列中,选择 ZooOrderApp,然后单击 RemoveZooOrderApp 资源移到 Available 列中。
  4. Finish
  5. Servers 视图中,右键单击 JMX[Connected],然后单击 Refresh

    JMX[Connected] 下的 Camel 树会消失。

    注意

    JMX Navigator 中,Server Connections > n.n Runtime Server[Connected] 下的 Camel 树也会消失。

  6. Properties 视图中显示的 Bundles 页面时,向下滚动到列表的末尾,以验证 ZooOrderApp 的捆绑包不再被列出。