我必须在WSO2企业服务总线配置文件中添加一个任务(XML格式),而不需要通过企业服务总线用户界面。我在外部的基于Java的应用程序中编写这个xml,然后将获得的XML (以<task>
标记开头和结尾)插入到我的企业服务总线中。如何以动态的方式插入我的任务(添加、修改或删除任务),以便以安全的方式达到这个目标?是否有一些WSO2应用程序接口可以帮助我?
发布于 2016-02-10 00:18:45
您可以使用管理服务:打开CARBON_HOME/repository/conf/cion.xml并将HideAdminServiceWSDLs属性设置为false
启动ESB,您现在可以访问管理服务wsdl。
您将找到一个名为"TaskAdmin“的服务: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 Console中编辑任务时,您可以观察到定义已经更新:触发器类型从'Cron‘更改为'Simple’(使用count=1和interval=0)。定义在内存中更改,并在重新启动ESB时丢失
https://stackoverflow.com/questions/35290528
复制相似问题