请选择段落导航
1.Java 理论与实践:让 J2EE 脱离容器(1)
2.Java 理论与实践:让 J2EE 脱离容器(2)
清单 1. JNPServer 的 jndi.properties
Java .naming.factory.initial=org.jnp.interfaces.NamingContextFactory
Java .naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
# Uncomment this line only if the JNDI server is to run in another JVM;
# otherwise, local JNDI requests will go over RMI
#
Java .naming.provider.url=localhost
Java 管理扩展(JMX)
Java 管理扩展(
Java Management Extensions,JMX)是一种管理组件和服务的生命周期的机制。JBoss 大量使用 JMX??JBoss 中的几乎所有组件都作为 JMX 服务提供。结果就是很容易配置一个只包括所需服务的应用程序。对于每一个组件服务,创建一个名为 MBean (托管的 bean)对象,它包含生命周期方法(start() 和 stop())和公开属性的 getter 和 setter。清单 2 显示了描述一个简单 Web 容器服务的 MBean 接口:
清单 2. 简单 Web 容器服务的 MBean 接口
public interface WebServerMBean {
// Lifecycle methods
void create() throws Exception;
void start() throws Exception;
void stop();
void destroy();
// Getter and setter for listener-port property
int getPort();
void setPort(int port);
// Get the names of loaded Web applications
String[] getWebApplications();
}
JBoss 还包括一个 Web 应用程序(jmx-console),它可以查看当前装载到 JBoss 服务器中的 MBeans、检查它们当前的状态、并用浏览器读取和写入它们的属性。(JMX 参考实现还包括一个名为 HtmlAdapter 的 Web 应用程序。)
虽然 JMX 是为 J2EE 提供的,但是也可以在 J2SE 应用程序中容易地使用它。至少有两个免费的 JMX 实现,Sun 的参考实现和开放源代码 MX4J。编写一个 MBean 以描述一个组件是相当简单的??通常所要做的就是实现 start() 和stop() 方法。编写一个简单的装载一组 MBean 并启动它们的 JMS “容器”只需约 40 行代码。遵循 JMX 标准,不但得到使用 JMS 的好处,比如远程属性检查和操纵(这对于调试及管理都有好处),而且还可以更容易地编写可以轻易地同时运行在 J2SE 和 J2EE 环境中的组件。
结束语
虽然 J2EE 和 J2SE 是用于不同工作的不同工具,但是许多开发人员发现自己必须决定各种框架服务的“轻量级”和“重量级”实现,比如消息、配置或者管理。通过使用 J2EE 接口的较轻量级的实现,如 Somnifugi JMS,开发人员可以在短期内得到性能和易于使用的好处,同时又具有在将来需要时,可以容易地迁移到更重量级的解决方案的灵活性。