【问题标题】:WSO2 EI Deploy Updated ArtifactWSO2 EI 部署更新的工件
【发布时间】:2019-05-20 20:13:06
【问题描述】:

我有一个关于 WSO2 EI 部署的问题。这是场景,我为我的项目创建了 4 个 API。

首次部署。我生成了 1 个 CApp 文件,其中包含 4 个 API 和其他工件,例如端点、资源和 java 项目

CappFile.1.0.0.car
-- FirstApi
-- SecondApi
-- ThirdApi
-- FourthApi

它运行良好,一切正常。例如,在接下来的几周内。 SecondApi 需要在流程中进行一些增强。在 Capp pom.xml 我只选择部署 SecondApi

CappFile.1.0.0.car
-- SecondApi

我这次部署CappFile.1.0.0.car时,会覆盖/删除系统中的FirstApi、ThirdApi和FourthApi。

虽然我需要更改 .car 文件的名称/版本。我的第二种方法是

CappFile.1.0.1.car
-- SecondApi

我这次部署的时候,控制台提示我一个错误Duplicate resource definition by the name: SecondApi

你们是怎么处理这种情况的?还是每次我需要执行部署时都需要在我的 .car 文件中包含所有内容,即使其他 API 没有任何更改?

更新

有一个选项可以将单个工件打包到可部署的档案中。 Link。我设法将 SecondApi 打包成可部署的档案,即 SecondApi.xml。

但是我需要在哪里上传 XML 文件?他们从未在文档中提及任何内容。

请帮忙!

【问题讨论】:

    标签: wso2 wso2esb synapse


    【解决方案1】:

    当您重新部署 CAR 文件时,EI 将有效地删除旧的 CAR 文件内容并用新的 CAR 文件内容替换它们。如果您的 CAR 文件包含 4 个 API,并且您更新了一个但不想删除其他的,那么新文件将不得不再次包含所有 4 个 API。

    其次,它会根据名称替换 CAR 文件及其内容。因此,如果您创建不同的 CAR 文件,它不会替换第一个。当它想要部署“SecondAPI”时,它已经存在并且不会被替换。

    如果您想单独部署您的 API,您应该为每个 API 创建一个 CAR 文件及其对应的文件(序列、注册表项等)。

    如果一组 API 之间存在依赖关系,并且您决定它们应该是同一个 CAR 文件的一部分,那么当您通过 CAR 文件更新其中一个 API 时,它们总是会被重新部署。

    如果您选择不同的方式来更新使用 CAR 文件部署的 API,它将在服务器重新启动时恢复到其原始状态(从 CAR 文件)。

    没有直接的方法来部署单独打包的工件。

    【讨论】:

    • 感谢@ophychius 先生的解释。如果是这种情况,我应该为 4 个不同的 API 提供 4 个不同的 CAR 文件是吗?每次我需要修复或更新文件时,我都需要重新部署整个东西,对吗?
    • 这可能是最简单的解决方案,在这种情况下,您只需在 API 有更新时部署其中一个文件。
    猜你喜欢
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多