tomcat - 是否可以在嵌入式 Tomcat 7 中启用 JMX?

标签 tomcat tomcat7 jmx

我想从我的 webapp 中访问 ServerConnector。此外,我需要从嵌入式 Tomcat 启动这个 webapp。这是我启动 tomcat 的方式:

Tomcat tomcat = new Tomcat();
tomcat.setPort(port);
StandardServer server = (StandardServer) tomcat.getServer();
server.addLifecycleListener(new AprLifecycleListener());
tomcat.addWebapp("/", webapp.getAbsolutePath());
tomcat.start();
tomcat.getServer().await();

当我使用 typical example通过 JMX 访问服务器 1 :

import javax.management.*;
import org.apache.catalina.Server;

MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
ObjectName name = new ObjectName("Catalina", "type", "Server");
Server server = (Server) mBeanServer.getAttribute(name, "managedResource");

我得到:

Caused by: javax.management.InstanceNotFoundException: Catalina:type=Server
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1094)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:662)
at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:638)

我认为这是因为我无法以某种方式引导 JMX。

最佳答案

看起来 JMX 运行良好,问题出在我用于查找的名称上。应该是:

ObjectName name = new ObjectName("Tomcat", "type", "Server");

相反。

关于tomcat - 是否可以在嵌入式 Tomcat 7 中启用 JMX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742762/

相关文章:

java - 在 Tomcat 上成功部署我的项目,但无法请求。显示 404

java - Spring MVC + Java Config + Embedded Tomcat - Spring Security 3 不工作

java - Tomcat webapp 的工作目录

java - Jersey JSON 序列化

java - 如何将Java项目部署到Tomcat

java - 是否有可能监听 MBeanServer 来注册新 bean?

apache - 将 "HTTPd"与 "Tomcat"连接时出现问题

eclipse - Jersey , Tomcat : The requested resource is not available error

java - 取消部署 WebLogic 应用程序时自动取消注册 MBean(由 Spring 注册)

java - 测试 Collectd 的 JMX 插件时出现异常(缺少 API getHostname())