我已成功配置我们的应用程序以将Quartz的MBean导出到JMX中,并可以查看JConsole中的所有内容。我可以运行大多数调度程序操作。
我真正想要运行的是'triggerJob',但是它在JConsole中显示为灰色/禁用,因此我无法运行它。
我已经扫描了将JMX代码添加到Quartz的提交,但是看不到triggerJob和其他已启用的操作之间的差异。
任何人都知道发生了什么事?
另一个StackOverflow问题描述了正在发生的事情:Why are some methods on the JConsole disabled
triggerJob(和另外两个操作)取非原始参数,这些复杂的参数不能在JConsole中提供。
我不清楚MBean提供程序是否可以为JConsole(或者是simlar)提供自定义编辑器,但至少我有答案。
答案 0 :(得分:1)
感谢您的解释。我使用以下Groovy代码通过JMX远程成功触发了一个作业:
def callParams = new Object[3]
callParams[0] = 'com.test.project.TestJob'
callParams[1] = 'DEFAULT_JOB_GROUP'
callParams[2] = new HashMap()
def callSignature = new String[3]
callSignature[0] = 'java.lang.String'
callSignature[1] = 'java.lang.String'
callSignature[2] = 'java.util.Map'
// server is an instance of MBeanServerConnection
server.invoke('triggerJob', callParams, callSignature)