Websphere 如何使用;adminClient.addNotificationListener“;用Jython脚本?
以下是文档: 问题是这不起作用:Websphere 如何使用;adminClient.addNotificationListener“;用Jython脚本?,websphere,jython,wsadmin,Websphere,Jython,Wsadmin,以下是文档: 问题是这不起作用: import javax.management.ObjectName as ObjectName ... theNodeAgentName = "WebSphere:type=NodeAgent,node='app_node2',*" test_node_name = adminClient.queryNames(ObjectName(theNodeAgentName), None) print test_node_name adminClient.addN
import javax.management.ObjectName as ObjectName
...
theNodeAgentName = "WebSphere:type=NodeAgent,node='app_node2',*"
test_node_name = adminClient.queryNames(ObjectName(theNodeAgentName), None)
print test_node_name
adminClient.addNotificationListener(ObjectName(theNodeAgentName),listener,None,None)
adminClient实例永远找不到节点代理Mbean。有什么想法吗
输出:
[WebSphere:name=NodeAgent,process=NodeAgent,platform=common,node=app_node2,diagnosticProvider=true,version=8.5.5.3,type=NodeAgent,mbeanIdentifier=NodeAgent,cell=my_cell,spec=1.0]
javax.management.InstanceNotFoundException:
javax.management.InstanceNotFoundException:找不到
WebSphere:type=NodeAgent,node='app_node2'*
我发现了脚本的错误(这是一个Python错误:“adminClient.queryNames”返回一个列表!),我将列表传递给“addNotificationListener”函数的第一个参数,诀窍是查询并获取列表中的第一个元素,例如:
the_node_agent_name = "WebSphere:type=NodeAgent,node=app_node2,*"
query_name = ObjectName(the_node_agent_name)
node_agent_names = adminClient.queryNames(query_name, None)
node_agent = ObjectName(str(node_agent_names[0]))
print node_agent
adminClient.addNotificationListener(node_agent,listener,None,None)
在纯wsadmin中使用JMX通知需要一些Jython黑客攻击。您可以在WDR库()中找到一些灵感(解决方案?)。此处记录了使用WDR的工作示例: