第 1 章 创建新的 Fuse 集成项目

概述

创建新的 Fuse 集成项目涉及以下主要步骤:

配置项目后,工具会下载所有必需的 Maven 依赖项,并创建运行和发布项目所需的 POM 文件。

注意

首次在 CodeReady Studio 中构建 Fuse 项目时,向导可能需要几分钟时间来完成在从远程 Maven 存储库下载依赖项时生成项目。

开始前

在创建新 Fuse 集成项目前,您应该有以下信息:

  • 您的目标运行时环境:OpenShift 上的 Fuse 或 Fuse 独立(Spring Boot、Fuse on Karaf 或 EAP 上的 Fuse)
  • Camel 版本(如工具使用的默认版本)

指定项目名称和工作区

要创建新的 Fuse 集成项目,请按照以下步骤执行:

  1. 选择 NewProjectRed Hat FuseFuse Integration Project 以打开 New Fuse Integration Project 向导。

    此时会打开向导,其中包含在 Location 窗格中选择的 Use default workspace location 选项。

    nfpProjectName1
  2. Project Name 中,为新项目输入一个名称,如 MySampleProject
  3. 指定要存储项目的数据的工作区位置。

    • 要使用默认工作区,请保留启用 Use default workspace location 选项。
    • 要使用其他位置,请清除 Use default workspace location 选项,并在 Path 字段中指定位置。

      BrowseButton 快速找到并选择一个备用工作区。

  4. Next 打开 Select a Target Environment 页面。

配置项目部署环境

在创建新项目时,您可以指定项目的目标部署环境,以便项目在运行时具有它所需的资源。您必须选择一个部署平台和 Camel 版本。另外,您可以指定运行时配置。

选择目标环境页面 打开:

  1. 选择是否要在 Kubernetes/OpenShift 上部署项目还是在 独立 平台上部署。

    NFPcamelVersion

    如果您选择 Kubernetes/OpenShift 作为部署平台,则会自动选择 print Boot 运行时,您可以跳至第 3 步。

  2. 如果您为部署平台选择 Standalone

    1. 选择目标运行时环境:

      • Spring Boot
      • Karaf/Fuse
      • EAP 上的 WildFly/Fuse
    2. 对于 Karaf 和 EAP 单机运行时环境,请为运行时配置选择以下选项之一:

  3. Select the Camel version for your new project 窗格中,接受与运行时关联的默认 Camel 版本,或更改默认值:

    • 从下拉列表中选择 Camel 版本。Fuse 工具支持列出的产品版本。
    • 如果要使用非产品版本进行测试(不支持),请输入不同的 Camel 版本。

      您可以点击 Verify 按钮检查工具是否可以访问指定的版本。如果没有,类似以下示例的通知会出现在 Select a Target Runtime 页标头中:

      验证 Camel
      注意

      创建、配置和保存项目后,您可以更改 Camel 版本。请参阅 第 12 章 更改 Camel 版本

  4. 选择运行时环境和作为新 Fuse 集成项目的 Camel 版本后,点 Next 打开向导的 Advanced Project Setup 页面,然后按照 “选择项目模板”一节 中的步骤操作。

创建新目标运行时(可选)

对于 Karaf 和 EAP 单机运行时环境,您可以选择从 New Fuse Integration Project 向导创建新的运行时配置。

  1. 在向导的 Select a Target Runtime 页面中,点 New 打开 New server runtime environment 页面:

    新的服务器运行时环境
  2. 扩展 红帽 JBoss 中间件 文件夹,然后选择红帽 Fuse 运行时环境。

    Create a new local server 选项保留为不选中状态。当您准备好发布项目时,您可以稍后创建本地服务器(请参阅 第 28.1 节 “添加服务器”)。

    注意

    如果您检查 Create a new local server 选项,新建 Fuse Integration Project 向导将帮助您执行额外的步骤来定义和配置 Fuse 服务器运行时(如 第 28.1 节 “添加服务器”所述)。然后,当构建项目时,它还会在 Fuse 集成 视角中将服务器运行时添加到 Servers 视图中。

  3. Next 打开服务器的 New Server Runtime Environment 页面:

    nfpRuntimeDefJBF1
  4. 指定服务器运行时的名称、主目录、执行环境

    • 名称 mvapich-busyboxAccept 默认,或为运行时环境输入新名称。
    • Home Directory mvapich-DESTINATIONClick Browse 按钮找到并选择服务器运行时的安装目录。

      注意

      如果还没有在机器上安装服务器,点 Download and install runtime 链接安装它,然后按照站点的下载说明安装它。根据站点,您可能需要提供有效的凭证,然后才能继续下载过程。

    • Runtime JRE: Execution Environment criu-busyboxAccept the default,或者从下拉列表中选择另一个 JavaSE 版本。

      如果列表中没有显示您想要的版本,点 Environments 按钮并从该列表中选择版本。必须在机器上安装您选择的 JRE 版本。

      注意

      Fuse 7.x 需要 JRE 版本 1.8。

    • Runtime JRE: Alternate JRE - 如果您的项目需要不同的 Java 版本,您可以使用这个选项。
  5. 点击 Finish 返回到 New Fuse Integration Project 向导的 Select a Target Runtme 页面:

    新配置的目标运行时会出现在 Target Runtime 窗格的下拉菜单中,运行时支持的 Camel 版本会出现在 Camel Version 窗格中,灰掉了。

    创建 Fuse 集成项目后,可以更改 Camel 版本。请参阅 第 12 章 更改 Camel 版本

  6. Next 为项目指定模板,如 “选择项目模板”一节 所述。

选择项目模板

Advanced Project Setup 页面提供了一个模板列表,您可以用作新项目的起点。模板基于常见用例,提供示例代码和数据,以便您快速开始。可用模板列表取决于您在上一个页面中选择的运行时环境。选择一个模板来查看其在右侧窗格中的描述。

注意

如果没有看到一个满足您的要求的模板,您可以点 where can more examples to use as templates? link to open an information dialog with an information dialog with a more examples more examples:

nfpTemplateExamples

要使用这些示例之一:

  1. 选择 Cancel 以退出 New Fuse Integration Project 向导。
  2. 从列出的 URL 之一克隆存储库。
  3. 第 13 章 导入现有的 Maven 项目 所述,将示例项目导入到 CodeReady Studio。
  • 对于 OpenShift 上的 Fuse,有一个模板演示了如何使用 Spring Boot 在 Spring Boot 中配置 Camel 路由。此模板会创建一个 Fuse 集成项目,需要比 2.18.1.redhat-000012 更新的 Camel 版本。

    此模板会创建一个在 OpenShift 服务器上运行的项目,它仅支持 Spring DSL。有关使用此模板的详情,请参考 第 7 章 在 OpenShift 中使用 Fuse

    nfpTemplateOpenShift
  • 对于 WildflyFuse on EAP,有一个模板,它提供了一个示例 Camel 路由,它调用 bean 服务来表示"Hello"。此模板会创建一个在 Red Hat EAP 服务器上运行的项目,它仅支持 Spring DSL。

    nfpTemplateEAP
  • 对于 KarafFuse on Karaf,您可以选择模板。您可以创建一个空项目,它根据三个支持的域特定语言(DSL)之一创建一个框架 Camel 上下文路由文件,或者您可以使用预定义的模板,每个项目都基于常见用例。单个模板可能不支持所有 DSL 选项。

    注意

    对于 Java DSL,工具会生成一个 CamelRoute.java 文件,您可以在工具的 Java 编辑器中进行编辑,但不生成图形图表示。

    • Content Based Router categoriesProvides a sample Camel route from a specific location 读取文件,并根据消息内容将它们路由到不同的输出文件夹。

      此模板会创建一个在红帽 Fuse 服务器上运行的项目,它支持所有三个 DSL。

    • CXF 代码 first mvapichProvides 一个由 CXF Web 服务调用启动的示例 Camel 路由。

      此模板会创建一个在红帽 Fuse 服务器上运行的项目,它仅支持 Spring 和 Java DSL。

      nfpTemplateKaraf
      1. 从列表中选择一个模板。
      2. Finish

        这些工具开始构建项目,并将其添加到 Project Explorer 视图中。

        如果 Fuse Integration 视角尚未打开,工具会询问您现在是否要切换到它:

        OpenAssociatedPerspective
      3. YesFuse Integration 视角中打开新项目:

        nfpTemplateProjectOpen

        该项目会出现在 Project Explorer 视图中。默认情况下,项目包括 Apache Camel 上下文(XML)文件。

      4. 点 canvas 底部的 Source 选项卡来查看生成的 Camel 上下文文件:

        nfpTemplateCBRsource
注意

如果要在项目中添加另一个新的 Camel 上下文文件,请参阅 第 11 章 创建新 Camel XML 文件

当您构建使用 CXF 的项目时,您可能希望构建过程在 Java 文件中自动操作来生成 WSDL 文件。为此,请在项目的 .pom 文件中配置 java2ws Maven 插件。请参阅: Apache CXF 开发指南, Maven 工具参考, java2ws

解决 Maven 依赖项错误

在创建新的 Fuse 集成项目后,您可能会遇到 Maven 依赖项错误。

虽然它可能会在其他时间发生,但通常会在进程完成前取消项目构建时发生。以这种方式中断流程通常会阻止所有项目的依赖项从 Maven 存储库下载,这可能需要一些时间。

您通常可以通过更新 Maven 依赖项来解决这些依赖关系错误,如下所示:

  1. Project Explorer 视图中,右键单击 root 项目以打开上下文菜单。
  2. 选择 MavenUpdate Project
  3. Update Maven Project 向导中:

    • 如果向导列表中显示多个要更新的项目,请选择您要更新的项目。
    • Force Update of Snapshots/Releases 选项启用它。
  4. 点击 确定

    在工作台的底部,您可以在 Maven 存储库下载缺少的依赖项时查看进度状态栏。