`
备战备荒
  • 浏览: 2843 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JMX的客户端和服务端(Spring配置的方式和编码的方式)

阅读更多
一、Spring配置的方式:
1、客户端:
client.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
	
	<bean id="mbeanClient" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
		<property name="serviceUrl" value="service:jmx:rmi://localhost/jndi/rmi://localhost:2012/springjmx"></property>
	</bean>

</beans>




SpringJmxClientMain

package client;

import javax.management.Attribute;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringJmxClientMain {

/**
* @param args
*/
public static void main(String[] args) throws Exception {
ApplicationContext context = new ClassPathXmlApplicationContext(
"client.xml");
MBeanServerConnection client = (MBeanServerConnection) context
.getBean("mbeanClient");
ObjectName objName = new ObjectName("springjmx:name=TestBean");
String result = (String) client.invoke(objName,
"printMessage", new Object[] { "Mike" },
new String[] { "java.lang.String" });

System.out.println("Client: result "+result);
String orgMessage = (String) client.getAttribute(objName, "Message"); //Why Message is Pascal style?
System.out.println("Client: orgMessage "+orgMessage);
Thread.sleep(20000);
client.setAttribute(objName, new Attribute("Message","Welcome"));
result = (String) client.invoke(objName,
"printMessage", new Object[] { "Mike" },
new String[] { "java.lang.String" });
System.out.println("Client: result "+result);

// logback jmx configurator
ObjectName logName = new ObjectName("ch.qos.logback.classic:Name=GatewayLog,Type=ch.qos.logback.classic.jmx.JMXConfigurator");
Object loggerList = client.getAttribute(logName, "LoggerList");
System.out.println(loggerList.getClass());
System.out.println(loggerList);
}

}

2、服务端
server.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
	
	<bean id="testBean" class="server.TestBean"></bean>
	
	<bean id="assembler" class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler">
		<property name="managedInterfaces">
			<list>
				<value>server.ITestBean</value>
			</list>
		</property>
	</bean>
	
	<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
		<property name="beans">
			<map>
				<entry key="springjmx:name=TestBean" value-ref="testBean"></entry>
			</map>
		</property>
		<property name="assembler" ref="assembler"></property>
	</bean>
	
	<bean id="rmiReg" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean" destroy-method="destroy">
		<property name="alwaysCreate" value="true"></property><!-- without alwaysCreate may throw a ConnectionException -->
		<property name="port" value="2012"></property>
	</bean>
	
	<bean class="org.springframework.jmx.support.ConnectorServerFactoryBean" depends-on="rmiReg">
		<property name="serviceUrl" value="service:jmx:rmi://localhost/jndi/rmi://localhost:2012/springjmx"></property>
	</bean>

</beans>


SpringJmxServerMain

package server;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringJmxServerMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		ApplicationContext context = new ClassPathXmlApplicationContext(
				"server.xml");
		TestBean bean = (TestBean) context.getBean("testBean");
		System.out.println("Server started");
		Thread.sleep(1000 * 1000);
	}

}



package server;

public interface ITestBean {
	public String getMessage();

	public void setMessage(String message);

	public String printMessage(String name);
}



package server;

public class TestBean implements ITestBean {
	private String message = "Hello";

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public String printMessage(String name) {
		String str = message + " " + name;
		System.out.println(str);
		return str;
	}
}


分享到:
评论

相关推荐

    Web Service XFire框架开发指南

    - **自动代码生成**:XFire能够自动生成服务端和客户端的绑定代码,大大减少了开发时间。 - **WSDL支持**:XFire可以动态生成WSDL文档,描述Web Service的接口和绑定信息。 - **数据绑定**:XFire支持多种数据绑定...

    Mina2.0工作原理以及配置注意事项

    3. **高级与低级API**:Mina支持两种级别的API,即低级API(基于字节缓存)和高级API(基于用户定义的消息对象),以便开发者根据具体需求选择最适合的方式。 4. **可定制的线程模型**:可以根据应用的需求选择不同...

    Mina2中文文档

    - **编解码器**:介绍如何使用Mina提供的编解码器过滤器对网络数据进行编码和解码。 #### Chapter 10 - Executor过滤器 - **执行器**:探讨了Mina中的Executor过滤器,用于管理和调度线程,确保程序高效运行。 ##...

    java网络框架对比报告.pdf

    - **IoServer**: 提供了IoAcceptor和IoConnector两个接口,分别用于服务端和客户端的连接。 - **IoAcceptor**: 负责监听端口并接受客户端连接,可以绑定多个端口。 - **IoConnector**: 用于客户端发起连接请求。 -...

    JavaWebServiceDemo(XFire)

    部署时,需要配置服务的URL、端口和绑定的接口信息。 5. **消费Web服务**: 客户端可以使用XFire提供的客户端API或生成的客户端代理类来调用Web服务。生成的客户端代理类提供了与服务端点接口相同的方法,使得调用...

    基于MINA构建高性能的NIO应用

    MINA作为一款优秀的客户端/服务器架构下的Java服务器框架,凭借其强大的功能和灵活性,在开发高性能网络应用程序方面表现突出。本文将深入探讨MINA的核心概念、优势以及如何利用它构建高效稳定的网络应用。 #### ...

    java开源包1

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包11

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包2

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包3

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包6

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包5

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包10

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包4

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包8

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包7

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包9

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包101

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    Java资源包01

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

Global site tag (gtag.js) - Google Analytics