- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试让示例 JMX MXBean 在 Spring 配置的 Web 应用程序中工作,但是当我连接到 jconsole 时,MXBean 上的任何基本属性都显示为未定义。
Java 接口(interface)/类:
public interface IJmxBean { // marker interface for spring config, see below
}
public interface MgmtMXBean { // lexical convention for MXBeans - mgmt interface
public int getAttribute();
}
public class Mgmt implements IJmxBean, MgmtMXBean { // actual JMX bean
private IServiceBean serviceBean; // service bean injected by Spring
private int attribute = 0;
@Override
public int getAttribute() {
if(serviceBean != null) {
attribute = serviceBean.getRequestedAttribute();
}
return attribute;
}
public void setServiceBean(IServiceBean serviceBean) {
this.serviceBean = serviceBean;
}
}
Spring JMX 配置:
<beans>
<context:component-scan base-package="...">
<context:include-filter type="assignable" expression="...IJmxBean" />
</context:component-scan>
<context:mbean-export />
</beans>
这是我目前所知道的:
该元素正确地实例化了一个名为“mgmt”的 bean。我已经登录了一个零参数公共(public)构造函数,表明它已构建。
正确地自动检测 MgmtMXBean 接口(interface)并将其注册到我的 Tomcat 6.0 容器。我可以使用 jconsole 连接到 Tomcat 中的 MBeanServer,并深入到 Mgmt MXBean。
检查 MXBean 时,“Attribute”总是列为 UNDEFINED,但 jconsole 可以告诉属性的正确类型。此外,在 jconsole 中点击“刷新”实际上并没有调用“属性”的 getter 方法 - 我已经登录了 getter 方法以指示它是否被调用(类似于有效的构造函数日志记录)并且我在日志中看不到任何内容.
此时我不确定自己做错了什么。我已经尝试了很多方法,包括构造一个显式的 Spring MBeanExporter 实例并手动注册 MXBean,但它要么导致 MBean/MXBean 未注册到 Tomcat 的 MBean 服务器,要么导致属性值为 UNDEFINED。
出于各种原因,我宁愿不必使用 Spring 的 @ManagedResource/@ManagedAttribute 注释。
我在 Spring 文档或 MBean/MXBean 规范中遗漏了什么吗?
最佳答案
问题已解决:感谢 Jon Stevens(上文)的提示,我回去重新检查了我的代码和 Spring 配置文件:
在 getAttribute()
中抛出异常方法是使“不可用”在 JConsole 中显示为属性值的可靠方法。就我而言:
default-autowire=""
根上的属性 <beans>
元素;serviceBean != null
.显然我在 stackoverflow.com 上写的代码比我的测试代码要好,因为我的测试代码没有检查它。我也没有 implements InitializingBean
或 @PostConstruct
检查 serviceBean != null
就像我通常对我使用的几乎所有其他 bean 类所做的那样;一旦我用 serviceBean == null
解决了问题,一切都很完美。无论如何,为 Jon 提供工作演示 +1,因为实际上有 50 种不同的方法可以在 Spring 中配置 MBean/MXBeans。
关于java - JMX MXBean 属性全部未定义 - Spring 3.0.x/Tomcat 6.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759972/
我正在尝试创建一个 MXBean 操作,它将返回一个没有属性的抽象类型(实际类型及其属性将在运行时确定)。我的数据模型可以简单的表述如下: public interface I extends Com
我正在尝试创建一个具有自定义属性的 MXBean,但我得到了 javax.management.NotCompliantMBeanExceptionIJmsDestinationMBean.getAt
当使用枚举作为 MXBean 中映射的值组件时,我似乎在枚举转换方面遇到困难。 public enum MyEnum { EnumVal1, EnumVal2, EnumVal3 }; pub
我有一个 Java 应用程序似乎正在泄漏内存,但我无法找到确定根本原因的方法。而且我从 MemoryMXBean 获得的堆内存使用情况似乎与我从堆转储 获得的堆内存使用情况有很大不同。 根据: ((d
我正在使用 MXBean 检测某个功能,并且我有一个接受 3 个输入参数的方法。 默认情况下,在 jconsole 上,参数显示为 p1、p2、p3 等。我有 @params 描述每个参数。我如何让
启动 MXBean 时,我收到错误提示 Method SampleServiceMXBean.register 具有无法转换为开放类型的参数或返回类型。根据错误消息,很明显我的 MXBean 无法 c
我需要定义和实现一个 MXBean 接口(interface)。其中一种方法将返回一个集合。这似乎不受 MXBeans 支持。我收到 OpenDataException 消息“无法转换类型:java.
有没有办法使用抽象或带注释的类作为 MXBean 描述符?我的界面如下: @MXBean public interface Peer { public String getName(); }
我有以下关于 MBean 和 MXBean 的问题: MBean和MXBean有什么区别? MBean 和 MXBean 的用例有哪些? 最佳答案 MXBean 只是一种特殊的 MBean。主要区别在
我是使用 JMX 和 MXBeans 计算 CPU 和内存使用情况这一领域的新手。我只是想知道 JMX 到底是什么以及 MXBeans 和 JMX 之间有什么区别?还有一种叫做 OSBeans 的东西
我只希望是否有人看到并解决了这个问题。我有一个 MBean 和一个 MXBean 类。两者都使用相同的服务类通过 DAO 类访问数据库。我正在使用 spring 3.0 来初始化这些类并使用 JCon
我想将 MXBean 作为消息从一个端点发送到另一个端点。Apache Camel 中已包含的 JMX 消息格式是否支持此? 我的项目涉及在本地计算机上获取 JVM 的 MXBean。我将使用 Com
我有一个在 2 个 MBean 服务器中注册的 MXBean 实例: @MXBean(true) public interface I { // ... } public final clas
我有一个 MXBean,它返回一个包含 Set 的属性. 当 JConsole 显示 UUID 时,它会将其视为具有两个属性的复合数据 - leastSignificantBits和 mostSign
我一直在尝试让示例 JMX MXBean 在 Spring 配置的 Web 应用程序中工作,但是当我连接到 jconsole 时,MXBean 上的任何基本属性都显示为未定义。 Java 接口(int
我是一名优秀的程序员,十分优秀!