Docker容器发生更改后WSO2丢失API

我有使用WSO2 API Manager 2.0.0的另一个问题:我已经在docker中使用三个容器(一个用于APIM,一个用于分析,另一个用于MySQL)安装它,我用自定义版本replace一些configuration文件(例如DB,服务器名称,网关设置…)。 APIM和Analytics都configuration为将数据保存在MySQL容器中,并且能够看到数据库中的更改。

问题是,在重build容器后,我无法在发布者和商店中find我的API。 数据库中的更改仍然存在,我可以看到所有API的统计信息,如果尝试使用相同的名称或上下文创build新的API,但出现新的构build后,该存储总是空的,则会出现错误。

我也试着把/ repository / deployment / server / synapse-config / default和/ repository / tenants /放在两个卷中,我可以看到/…/default/api/中为我的API创build的文件,但我无法弄清楚这个问题。 我应该坚持一些额外的目录中没有提到的指南?

如果可能的话,我不希望把整个APIM和分析家的数量都放在一起。

首先,检查工件是否可以位于资源浏览器中

资源浏览器

如果你能findAPI相关的文件,那么这个问题与索引有关。 执行以下操作重新索引registry中的工件:

  1. 重命名<APIM_2.0.0_HOME>/repository/conf/registry.xml文件中的<APIM_2.0.0_HOME>/repository/conf/registry.xml 。 如果您使用集群/分布式API Manager设置,请更改API发布者节点中的文件。 例如,将/_system/local/repository/components/org.wso2.carbon.registry/indexing/lastaccesstimeregistrypath更改为/_system/local/repository/components/org.wso2.carbon.registry/indexing/lastaccesstime_1
  2. closuresAPIpipe理器,备份并删除<APIM_2.0.0_HOME>/solr目录。
  3. 最后启动APIpipe理器。

Api信息驻留在数据库和文件系统中(/ repository / deployment / server / synapse-config / default / api)registry工件可能没有正确索引。 你可以尝试跟随?

  1. 删除太阳目录。
  2. 打开registry.xml并如下所示更改以下行。 <lastAccessTimeLocation> / _ system / local / repository / components / org.wso2.carbon.registry / indexing / lastaccesstime-1
  3. 现在重新启动服务器。 服务器将重新索引所有文件。

还要确保数据库已正确configuration。 特别registry安装相关的configuration。