Activiti5.16.4版本中,添加了jmx模块,Activiti默认打开了jmx功能,关于如何禁用jmx功能,稍后进行说明。本文以activiti-jmx-5.21的使用为例详细说明:
使用jmx的时候,需要引入该模块的地址,Maven仓库地址为:
org.activiti activiti-jmx 5.21.0
引入之后,启动流程引擎如下所示:
public class App {
// 获取到Activiti ProcessEngine
ProcessEngine processEngine = null;
// 获取RepositoryService 实例对象
RepositoryService repositoryService = null;
// 资源名称
String resourceName = "shareniu_addInputStream.bpmn";
IdentityService identityService;
RuntimeService runtimeService;
TaskService taskService;
ActivitiEventDispatcher eventDispatcher;
@Before
public void init() {
InputStream in = App.class.getClassLoader().getResourceAsStream(
"com/shareniu/chapter16/activiti.cfg.xml");
ProcessEngineConfiguration pcf = ProcessEngineConfiguration
.createProcessEngineConfigurationFromInputStream(in);
processEngine = pcf.buildProcessEngine();
repositoryService = processEngine.getRepositoryService();
identityService = processEngine.getIdentityService();
runtimeService = processEngine.getRuntimeService();
taskService = processEngine.getTaskService();
ProcessEngineConfigurationImpl pc = (ProcessEngineConfigurationImpl) processEngine
.getProcessEngineConfiguration();
eventDispatcher = pc.getEventDispatcher();
}
紧接着,开始测试jmx功能,如下所示:
@Test
public void addInputStreamTest() throws IOException, MalformedObjectNameException, InstanceNotFoundException, MBeanException, ReflectionException, InterruptedException {
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi/activiti");
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
Integer mBeanCount = mbsc.getMBeanCount();
ObjectName mbeanName = new ObjectName("org.activiti.jmx.Mbeans", "type", "Deployments");
Object invoke = mbsc.invoke(mbeanName, "getProcessDefinitions", null, null);
System.out.println(invoke);
List<list> result=(List<list>) invoke;
for (List list : result) {
for (String string : list) {
System.out.println(string);
}
}
Thread.sleep(Integer.MAX_VALUE);
// ProcessDefinitionsMBean processDefinitionsMBean=new ProcessDefinitionsMBean(processEngine.getProcessEngineConfiguration());
// processDefinitionsMBean.getProcessDefinitionById(id)
/*mbsc.getObjectInstance("org.activiti.jmx.Mbeans");
ObjectName mbeanName = new ObjectName("com.jmx.demo9:name=Hello");
System.out.println(mBeanCount);*/
}
Activiti在使用jmx功能的时候,默认的服务URL为service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi/activiti。然后我们打开jconsole工具(位于JDK安装目录中的bin目录下)如下图所示:
版本归http://www.shareniu.com/所有,未经授权请不要转载,否则追究法律责任。
转载请注明:分享牛 » Activiti jmx使用(上)