在 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"删除?
提前致谢
- WSO2 ESB 5.0.0
- Ubuntu 16.04
- JDK 1.8 甲骨文
不,除了删除 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',在 component
、artifacts.xml
和 pom.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>
我设法部署了我的汽车,其中包含各种 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"删除?
提前致谢
- WSO2 ESB 5.0.0
- Ubuntu 16.04
- JDK 1.8 甲骨文
不,除了删除 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',在 component
、artifacts.xml
和 pom.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>