`
liufei.fir
  • 浏览: 687178 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用MBean获取tomcat和jboss端口

阅读更多
/**
	 * 根据协议和scheme获取服务端口号
	 * 
	 * @param protocol
	 * @param scheme
	 * @return
	 */
	protected Integer getPortByMBean(String protocol, String scheme) {
		MBeanServer mBeanServer = null;
		ArrayList<MBeanServer> mBeanServers = MBeanServerFactory.findMBeanServer(null);
		
		int serverType = 1;
		if(mBeanServers.size() > 0) {
			for (MBeanServer _mBeanServer : mBeanServers) {
				if(_mBeanServer instanceof JmxMBeanServer) {
					mBeanServer = _mBeanServer;
					break;
				} else if("jboss".equals(_mBeanServer.getDefaultDomain())) {
					mBeanServer = _mBeanServer;
					serverType = 2;
				} else {
					throw new IllegalStateException("无法识别JVM中关联的MBeanServer.");
				}
			}
		}
		if(mBeanServer == null) {
			throw new IllegalStateException("没有发现JVM中关联的MBeanServer.");
		}
		
		Set<ObjectName> objectNames = null;
		
		try {
			if(serverType == 1) {
				objectNames = mBeanServer.queryNames(new ObjectName("Catalina:type=Connector,*"), null);
			}
			else if(serverType == 2) {
				objectNames = mBeanServer.queryNames(new ObjectName("jboss.web:type=Connector,*"), null);
			}
		} catch (MalformedObjectNameException e) {
			e.printStackTrace();
		} catch (NullPointerException e) {
			e.printStackTrace();
		}
		
		if(objectNames == null || objectNames.size() <= 0) {
			throw new IllegalStateException("没有发现JVM中关联的MBeanServer : " + mBeanServer.getDefaultDomain() + " 中的对象名称.");
		}
		
		try {
			for (ObjectName objectName : objectNames) {
				Object _protocol = mBeanServer.getAttribute(objectName, "protocol");
				Object _scheme = mBeanServer.getAttribute(objectName, "scheme");
				
				if(protocol.equals(_protocol) && scheme.equals(_scheme)) {
					return (Integer) mBeanServer.getAttribute(objectName, "port");
				}
			}
		} catch (AttributeNotFoundException e) {
			e.printStackTrace();
		} catch (InstanceNotFoundException e) {
			e.printStackTrace();
		} catch (MBeanException e) {
			e.printStackTrace();
		} catch (ReflectionException e) {
			e.printStackTrace();
		}
		
		return null;
	}
分享到:
评论

相关推荐

    jmx_tomcat_jboss

    【压缩包子文件的文件名称列表】:“jmx_server”:这可能是一个包含与JMX服务器相关的配置文件、示例代码、库或者文档的文件,用于帮助用户设置和使用JMX来管理Tomcat或JBoss服务器。通常,这样的文件可能包含: 1...

    JBoss端口配置[文].pdf

    JBoss 是一个开源的企业级应用服务器,用于部署和管理Java应用程序。在多实例环境中,确保每个实例使用不同的端口是必要的,以...这个过程简化了管理和维护多个JBoss实例的复杂性,使得端口管理变得更加有序和高效。

    JBOSS端口配置

    本文将基于提供的文件内容,详细介绍JBoss端口配置的相关知识点,帮助读者更好地理解和掌握JBoss端口配置的方法。 #### 二、端口配置文件 JBoss端口配置主要涉及以下几个配置文件: 1. **`jboss-service.xml`**:...

    tomcat jboss数据源配置.rar

    总之,配置Tomcat和JBoss的数据源是一项关键任务,涉及对JNDI、数据库驱动、连接池管理和MBean的理解。通过合理配置,可以有效地管理数据库连接,提高系统的可扩展性和可靠性。提供的压缩包文件"jboss4.0 配置.txt...

    Servlet引擎:JBoss与Tomcat、Jetty协同工作

    其中,JBoss、Tomcat和Jetty是最为广泛使用的Servlet容器,它们各自拥有独特的架构和工作原理,但同时也具备协同工作的能力。 **一、JBoss的基本架构与工作原理** JBoss是一个功能强大的企业级Java应用服务器,其...

    一台机器部署多个jboss说明

    此文件位于`$JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/`目录下,主要用于配置HTTP服务端口。 ```xml ${jboss.bind.address}"/&gt; ${jboss.bind.address}"/&gt; ``` 需要注意的是,上述示例中的`8080...

    jboss 下载(httpwww.jboss.org)

    1. MBean 服务器:作为 JBoss 的核心,管理和控制应用程序组件。 2. EJB 容器:处理 EJB 的生命周期管理和事务管理。 3. JNDI(Java Naming and Directory Interface):提供对象的命名和查找服务。 4. JMS(Java ...

    Quartz jboss Mbean Config

    Quartz jboss Mbean Config

    tomcat7和8

    Apache Tomcat是一款开源的Java Servlet容器,用于部署和运行Java Web应用程序。它是基于Sun Microsystems的Java Servlet和...在实际操作中,确保正确安装和配置Tomcat,以及定期更新以获取最新的安全补丁和性能优化。

    jboss热部署配置

    可以尝试在`jboss-app.xml`文件中将`loader-repository`设置为`jboss.web.deployment:loader-repository-class=org.jboss.web.tomcat.service.loader.HotDeployClassLoaderRepository`,以使用JBoss的热部署类加载器...

    JBOSS使用指南

    JMS使用和设置** - **5.1 JMS消息的传递模型** - 主要有两种传递模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。PTP模型中,消息由生产者发送给消费者,每个消费者只接收一次...

    jboss远程调用JMX

    RMI URL通常类似于`service:jmx:rmi:///jndi/rmi://hostname:port/jmxrmi`,其中`hostname`和`port`是JBoss服务器的地址和端口。 为了实现远程调用JMX,我们需要以下步骤: 1. **配置JBoss**:在JBoss的配置文件...

    tomcat multi-port

    2. 分别启动:每个监听不同端口的Tomcat实例可以通过修改`catalina.sh`或`catalina.bat`启动脚本中的`CATALINA_OPTS`环境变量,指定不同的工作目录和端口,例如: ``` export CATALINA_BASE=/path/to/apache-...

    spring-jboss整合

    而JBOSS作为一款广泛使用的开源应用服务器,提供了丰富的服务和功能,能够满足复杂的企业级应用需求。因此,如何将Spring框架与JBOSS应用服务器进行有效的整合,成为了许多开发者关注的重点。 #### 二、Spring与...

    tomcat及其配置文件

    【描述】:“Tomcat、JDK以及Tomcat的一些配置文件,包括`server.xml`和Linux下使用`service`启动Tomcat的方法” Tomcat的运行离不开Java Development Kit(JDK),因为Tomcat需要JDK中的Java运行环境来解析和执行...

    jboss 中文开发文档

    - **Web 容器—Tomcat**:由于 JBoss 内置了 Tomcat 作为 Web 容器,因此本节专门介绍如何管理和配置 Tomcat。 ##### 第三章:关于实例应用 - **J2EE Tutorial**:介绍了 J2EE 示例教程的应用部署过程。 - **容器...

Global site tag (gtag.js) - Google Analytics