假设我们有一个具有以下属性和操作的MBean。
属性:名称大小
操作:getName()getSize()
有没有办法以编程方式检查属性和操作?我一直在使用IBM WebSphere MBean,它们的文档不是很好。
例如,如果您转到IBM的Infocenter,然后导航至“网络部署->参考->编程接口-> Mbean接口-> ThreadPool”。它们仅列出了属性,没有任何操作。
使用WebSphere wsadmin工具,我实际上可以检查以查看操作和属性。我想知道是否有一种方法可以使用所有MBean。
wsadmin>print Help.attributes(object)
Attribute Type Access
name java.lang.String RO
maximumSize int RW
minimumSize int RW
inactivityTimeout long RW
growable boolean RW
stats javax.management.j2ee.statistics.Stats RO
wsadmin>print Help.operations(object)
Operation
java.lang.String getName()
int getMaximumPoolSize()
void setMaximumPoolSize(int)
int getMinimumPoolSize()
void setMinimumPoolSize(int)
long getKeepAliveTime()
void setKeepAliveTime(long)
boolean isGrowAsNeeded()
void setGrowAsNeeded(boolean)
javax.management.j2ee.statistics.Stats getStats()
我不太清楚您是否在谈论以编程方式从当前JVM内部还是从客户端远程查找MBean。有许多JMX客户端库。您可能需要尝试我的SimpleJMX软件包。
使用我的代码,您可以执行以下操作:
JmxClient client = new JmxClient(hostName, port);
Set<ObjectName> objectNames = getBeanNames()
for (ObjectName name : objectNames) {
MBeanAttributeInfo[] attributes = getAttributesInfo(name);
MBeanOperationInfo[] operations = getOperationsInfo(name);
}
如果您询问当前的JVM,那么您应该能够以这种方式从内部Bean获取Bean信息:
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
Set<ObjectName> objectNames = server.queryNames(null, null);
for (ObjectName name : objectNames) {
MBeanInfo info = server.getMBeanInfo(name);
}
问题内容: 我正在做一个项目,我们在Java服务和以其他各种语言编写的客户端之间进行大量的远程对象传输。考虑到我们当前的限制,我决定查看基于现有Java类生成代码所需要的内容。基本上,我需要获取一个文件(或它们的集合)来解析字节码,以确定所有数据成员,甚至可能是getter / setter,然后编写一些可以输出不同语言代码的内容,以创建具有相同结构的类。 我不是在寻找像JAD这样的标准反编译器。
问题内容: 我想确定我的Java程序正在以编程方式运行的主机的操作系统(例如:我希望能够基于我在Windows还是Unix平台上加载不同的属性)。做到100%可靠性的最安全方法是什么? 问题答案: 你可以使用: PS:你可能会发现此代码有用: 它所做的只是打印出Java实现提供的所有属性。通过它,你可以了解可以通过属性了解Java环境的内容。
/home/hduser/bin/hadoop-2.9.0/share/hadoop/common/hadoop-common-2.9.0.jar/home/hduser/bin/hadoop-common-2.9.0/share/hadoop/common/hadoop-common-2.9.0-tests.jar/home/hduser/bin/hadoop-2.9.0/share/hadoo
所以我需要为@Transactional注释设置timeout参数。这个属性将来自一个属性文件,我不能这样做,因为我遇到了“注释属性transactional.timeout的值必须是常量表达式”。像这样的东西
问题内容: 假设我有一个python对象和一个字符串,如何将属性设置为?所以: 魔术是什么?顺便说一下,这样做的目的是将对的调用缓存。 问题答案: 寻求帮助: 编辑:但是,你应注意(如注释中所指出),你不能对的“纯”实例执行此操作。但是很可能你有一个简单的对象子类,可以很好地工作。我强烈敦促不要创建这样的对象实例。
问题内容: 我需要使用python编辑Excel工作簿。有没有这样做的方法,而无需阅读工作簿,编辑我想要的内容并将其写回?即有没有一种方法可以即时进行,因为我只需要在每张纸上编辑几个值? 我已经看过了,和,但他们似乎只支持(据我可以工作),阅读和写作不是编辑。我无法使用,因为我正在使用linux。 对库或特定的工作方式有何建议? 问题答案: xlutils有一个复制模块,可能会与您交错