如何以编程方式在java Web应用程序中获取tomcat连接器属性

Aru*_*G R 1 java tomcat tomcat8

我们在tomcat的server.xml中有连接器,如下所示:

< Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxConnections="500" maxThreads="150"/>

至于我的担心,我猜这些连接器在启动tomcat时作为对象加载.

那么我们可以在我的java web应用程序中获取port,maxConnections,connectionTimeout等属性,这些属性在tomcat中作为使用任何库的对象运行吗?

如果我在这里得到一些火花,那就太好了.

Chi*_*ain 6

您可以通过获取服务器及其配置MBeanServer.

接口MBeanServer:这是代理端MBean操作的接口.它包含创建,注册和删除MBean所需的方法以及已注册MBean的访问方法.这是JMX基础架构的核心组件.

您可以使用以下代码:

MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
ObjectName name = new ObjectName("Catalina", "type", "Server");
Server server = (Server) mBeanServer.getAttribute(name, "managedResource");
int port = server.getPort();
Run Code Online (Sandbox Code Playgroud)

  • 我从这里得到了一个完美的样本 https://github.com/cqyijifu/watcher/blob/master/watcher-http/src/main/java/com/yiji/framework/watcher/http/metrics/WebContainerMetrics.java 的帮助你的评论。谢谢 !我现在将其标记为答案。 (2认同)