写一个gmbal的小例子
时间: 2024-03-23 10:42:25 浏览: 122
datasnap-iOS-gimbal-sample
好的,下面是一个使用GMBal的简单例子:
```java
import com.sun.jdmk.comm.HtmlAdaptorServer;
import com.sun.management.jmx.Trace;
import org.glassfish.gmbal.ManagedObject;
import org.glassfish.gmbal.ManagedObjectManager;
import org.glassfish.gmbal.ManagedObjectManagerFactory;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
@ManagedObject
public class MyService {
@ManagedObject
public String getName() {
return "MyService";
}
@ManagedObject
public void start() {
// 启动服务...
}
@ManagedObject
public void stop() {
// 停止服务...
}
}
public class GMBalExample {
public static void main(String[] args) throws Exception {
// 创建ManagedObjectManager实例
ManagedObjectManager mom = ManagedObjectManagerFactory.createStandalone("MyApp");
// 创建MBeanServer实例
MBeanServer mbs = MBeanServerFactory.createMBeanServer();
// 注册ManagedObjectManager实例
mom.setMBeanServer(mbs);
// 注册MyService对象
MyService myService = new MyService();
mom.registerAtRoot(myService, true);
// 启动HTML适配器,方便通过浏览器查看管理信息
HtmlAdaptorServer htmlAdaptor = new HtmlAdaptorServer();
htmlAdaptor.setPort(8080);
mbs.registerMBean(htmlAdaptor, new ObjectName("Adaptor:name=html,port=8080"));
htmlAdaptor.start();
// 输出Trace信息
Trace.send(TraceLevel.INFO, "MyApp", "GMBalExample started");
// 等待用户输入回车键退出程序
System.out.println("Press Enter to exit...");
System.in.read();
// 停止HTML适配器
htmlAdaptor.stop();
// 取消注册MyService对象
mom.unregister(myService);
// 关闭ManagedObjectManager实例
mom.close();
// 关闭MBeanServer实例
MBeanServerFactory.releaseMBeanServer(mbs);
}
}
```
这个例子中,我们创建了一个名为MyService的服务类,并使用GMBal将其注册到管理架构中。然后,我们启动了一个HTML适配器,方便通过浏览器查看管理信息。最后,我们等待用户输入回车键退出程序,停止HTML适配器并取消注册MyService对象,关闭ManagedObjectManager和MBeanServer实例。
阅读全文