我对WSO2 EI部署有疑问。在这种情况下,我为项目创建了4个API。
首次部署。我生成了1个CApp文件,其中包含4个API和其他工件,例如端点,资源和Java项目
CappFile.1.0.0.car
-- FirstApi
-- SecondApi
-- ThirdApi
-- FourthApi
运行良好,一切正常。例如在接下来的几周。第二个Api需要在流程中进行一些增强。在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文件?他们从未在文档中提及任何内容。
请帮助!
答案 0 :(得分:2)
当您重新部署CAR文件时,EI将有效地删除旧的CAR文件内容,并将其替换为新的CAR文件内容。如果您的CAR文件包含4个API,而您又更新了一个但又不想删除其他API,则新文件将必须再次包含所有4个API。
其次,它根据名称替换CAR文件及其内容。因此,如果您创建其他CAR文件,它将不会替换第一个。然后,当它想要部署“ SecondAPI”时,它已经存在,将不会被替换。
如果要单独部署API,则应为每个API及其对应的文件(序列,注册表项等)创建一个CAR文件。
如果一组API之间存在依赖关系,并且您决定它们应该属于同一CAR文件,则在通过CAR文件更新其中一个API时,它们将始终被重新部署。
如果您选择其他方法来更新使用CAR文件部署的API,则在服务器重新启动后,它将恢复为原始状态(来自CAR文件)。
没有直接的方法来部署单独打包的工件。