在 WSO2 ESB 中删除应用程序不会删除组件

Removing application in WSO2 ESB does not remove components

我设法部署了我的汽车,其中包含各种 api、序列……并通过 maven 插件部署它。

不幸的是,当我尝试取消部署它时(Carbon Applications > Delete),一切似乎都正常:

INFO {org.wso2.carbon.application.deployer.internal.ApplicationManager} -  
Successfully Undeployed Carbon Application : distribution_1.0.0-SNAPSHOT {super-tenant} 
{org.wso2.carbon.application.deployer.internal.ApplicationManager}

但它不会删除任何内容。

API 列表仍然包含我的定义:

重启服务器后,组件被删除。

是否需要刷新某些内容、缓存或其他任何内容才能"commit"删除?

提前致谢

不,除了删除 capp 之外,您什么都不用做。

您执行以下步骤以进行更多调查。

1) capp 删除后,它会显示取消部署的工件以及 "pplicationManager Successfully Undeployed Carbon Application" 日志。检查天气是否列出了您所有的工件

[2016-09-21 23:08:44,630]  INFO - SequenceDeployer Sequence named 'callGetMemberStatementESB' has been undeployed
[2016-09-21 23:08:44,630]  INFO - SequenceDeployer Sequence named 'getMemberStatement' has been undeployed
[2016-09-21 23:08:44,631]  INFO - SequenceDeployer Sequence named 'getMemberTransactions' has been undeployed
[2016-09-21 23:08:44,632]  INFO - ApplicationManager Successfully Undeployed Carbon Application : GetMemberStatement_1.0.0 {super-tenant}

2) 检查尝试访问代理或 api 是否仍在显示,只是为了检查 api 是否未部署。有时可能是浏览器缓存。

如果这是一致的并且您认为这是一个错误,请在 WSO2 public jira 中创建一个票证。

您需要转到源代码视图并从代码中删除 API。然后它将从 ESB.

中销毁 API

服务总线 => 源视图 => 删除适当的 API 并更新它

嗯,ESB 没有移除汽车,因为工件的名称是 'abc',而组件的名称是 'xyz'。

重要的是,您的组件名称与您的 CAR 中的工件名称完全相同。在下面的示例中,名称始终为 'heart-beat',在 componentartifacts.xmlpom.xml

组件:

<api xmlns="http://ws.apache.org/ns/synapse" name="heart-beat" 
     context="/heart-beat">
   <resource methods="GET">
     ...
   </resource>
</api>

artifacts.xml

<artifact name="heart-beat" groupId="..." version="1.0.0-SNAPSHOT"
          type="synapse/api" serverRole="EnterpriseServiceBus">

pom.xml

<dependency>
    <groupId>...</groupId>
    <artifactId>heart-beat</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <type>xml</type>
</dependency>