在WSO2 ESB配置

时间:2016-02-09 11:11:59

标签: xml api wso2 task esb

我必须在WSO2 ESB配置文件中添加任务(XML格式),而不通过ESB用户界面。我在基于Java的应用程序中外部编写了这个xml,然后我应该将获得的XML(它以<task>标记开头和结尾)插入到我的企业服务总线中。如何以动态方式插入我的任务(添加,修改或删除任务),以便以安全的方式实现这一目标?是否有一些WSO2 API可以帮助我?

1 个答案:

答案 0 :(得分:1)

您可以使用管理服务:打开CARBON_HOME / repository / conf / carbon.xml并将HideAdminServiceWSDLs属性设置为false

启动ESB,您现在可以访问管理服务wsdl。

您将找到名为&#34; TaskAdmin&#34;的服务。 :https://localhost:8243/services/TaskAdmin?wsdl

它包含一个名为addTaskDescription的操作,但我从未使用它,希望它能帮到你。

如果您需要管理服务列表,可以使用-DosgiConsole选项启动Carbon服务器以转到osgi控制台。如果在控制台中键入help,您将获得所有可用命令。

listAdminServices命令将列出所有可用的服务。

也许这个示例可以帮助您:这个javascript为您提供了一种从中介内部启动/停止计划任务的方法:

 <script language="js">importPackage(Packages.org.apache.synapse);
    importPackage(Packages.org.apache.synapse.config);
    importPackage(Packages.org.apache.synapse.task);
    var sc = mc.getConfiguration();
    var task = sc.getStartup("TestTask");
    var td = task.getTaskDescription() 
    td.setCount(0);
    //td.setCron(null);
    task.setTaskDescription(td);            
    sc.updateStartup(task);
    mc.setConfiguration(sc);
    task.destroy();
    task.init(mc.getEnvironment());</script>

如果你的任务有一个Cron表达式,td.setCount(0),任务执行停止,并且td.setCount(-1),任务执行重启。

使用td.setCount(1)+ td.setCron(null),在ESB控制台中编辑任务时,您可以观察到该定义已更新:触发类型已从&#39; Cron&#39;到&#39;简单&#39; (count = 1且interval = 0)。内存中的定义已更改,并在重新启动ESB时丢失。