使您的应用程序调用我的应用程序,第 3 部分: 资源适配器
2010-03-19 00:00:00 来源:WEB开发网让我们来看看这些契约定义的基本接口和适配器实现。
生命周期管理契约
生命周期管理契约为一个资源适配器定义了一组生命周期方法。J2EE 应用服务器在各种事件上调用这些方法,如适配器部署、服务器宕机等等。
ResourceAdapter 接口
资源适配器将 javax.resource.spi.ResourceAdapter 接口作为 Java bean 实现,在描述符(ra.xml)中指定实现类名。
ResourceAdapter 中定义的各生命周期方法包括:
start(BootstrapContext):在部署资源适配器或应用服务器启动时,应用服务器调用 start 方法。资源适配器可从 BootstrapContext 获得 WorkManager,在 start 方法中启动工作或在激活端点时其工作。本例中的消息端点是一个使用来自资源适配器的消息的应用服务器。
stop():stop 方法将在适配器被解除部署或应用服务器宕机期间被调用。
endpointActivation():应用服务器在消息端点被激活(例如,初始化了一个 MDB 时)时调用此方法。
endpointDeactivation():应用服务器在消息端点停用时调用此方法。
examples.po.adapter.spi.JamesResourceAdapter 实现 ResourceAdapter 接口中定义的所有生命周期方法,如 清单 1 所示。
清单 1. JamesResourceAdapter 片段
public JamesResourceAdapter() {
super();
}
public void start(BootstrapContext arg0)
throws ResourceAdapterInternalException {
ilog("In start()");
workMgr = arg0.getWorkManager();
}
public void stop() {
ilog("In stop()");
}
public void endpointActivation(MessageEndpointFactory arg0,
ActivationSpec arg1) throws ResourceException {
ilog("In endpointActivation");
emailWork = new JamesWork(emailSpec.getEmailUser(),
emailSpec
.getEmailPassword(),
emailSpec.getEmailHost(),
arg0);
//starts polling the email inbox
workMgr.startWork(emailWork);
}
public void endpointDeactivation(MessageEndpointFactory arg0,
ActivationSpec arg1) {
//stops polling email inbox
emailWork.release();
}
更多精彩
赞助商链接