public class MessageReceiverFactory {
private static MessageReceiver messageReceiver;
private static RemotableMessageReceiver remotableMessageReceiver;
private static void init() throws ServerReceiverException {
SystemInfo sysInfo = ContextFactory.getSystemConfigContext()
.getSystemInfo();
if (sysInfo.isServer()) {
MessageReceiver mifMessageReceiver = new ServerMessageReceiver();
if (sysInfo.isRemoteable()) {
try {
remotableMessageReceiver = new RMIMessageReceiver(mifMessageReceiver);
} catch (RemoteException e) {
throw new ServerReceiverException(
"bind Message Receiver to port: "
+ sysInfo.getRmiport()
+ " with service name: "
+ sysInfo.getReceiverRmiBindName(), e);
}
}
messageReceiver = new StdMessageReceiver(mifMessageReceiver);
} else {
String rmiHost = sysInfo.getRmiHost();
int rmiPort = sysInfo.getRmiport();
String serviceName = sysInfo.getReceiverRmiBindName();
messageReceiver = createRemoteMesageReceiver(rmiHost, rmiPort,
serviceName);
}
}
public static MessageReceiver createRemoteMesageReceiver(String rmiHost,
int rmiPort, String serviceName) throws ServerReceiverException {
return new RemoteMessageReceiver(rmiHost, rmiPort, serviceName);
}
public synchronized static MessageReceiver getMessageReceiver() throws ServerReceiverException {
if(messageReceiver == null) {
init();
}
return messageReceiver;
}
public static RemotableMessageReceiver getRemoteableMesageReceiver(){
return remotableMessageReceiver;
}
public synchronized static void initMessageReceiver() throws ServerReceiverException {
init();
}
}
|
相关推荐
尽管国外已有成熟的邮件系统,但国内的邮件服务仍有待完善和普及。因此,设计一个简单易用的Java邮件系统,既能满足用户需求,也能推动国内邮件服务的发展。 2. 文献综述 J2EE架构是目前企业级应用开发的主流选择,...
- **与现有REST服务集成**:如果已有REST服务,Dubbo-rpc-rest可以方便地与这些服务集成,实现微服务间的互通。 3. **RESTful服务与Dubbo的结合** 将RESTful服务与Dubbo结合,可以充分利用两者的优势。RESTful...
Java Management Extensions(JMX)是Java平台提供的一种标准管理框架,用于管理和监控应用程序、系统和服务。在本场景中,我们关注的是如何利用JMX来远程监控服务器上的关键资源,如CPU利用率、内存状态、已加载类...
javax.xml.bind.attachment 此包由基于 MIME 的包处理器实现,该处理器能够解释并创建基于 MIME 的包格式的已优化的二进制数据。 javax.xml.bind.helpers 仅由 JAXB 提供者用于: 提供某些 javax.xml.bind 接口的...
- 使用网络工具如`netstat`或`telnet`等验证端口是否已被正确占用,并确保服务正常运行。 #### 四、示例代码 为了更好地理解上述步骤,下面提供一个简单的示例来展示如何修改`bindings.xml`文件中的端口配置: ``...
- **LTO(线性磁带开放标准)**:指的是线性磁带开放标准,目前已有多个版本,比如 LTO-4,每一代都提供了更高速的数据传输能力和更大的存储容量。 - **KMIP(密钥管理互操作性协议)**:KMIP 是一种网络协议,用于...
- **方法引用**:直接引用已有的方法,如`::`操作符,减少冗余代码。 - **默认方法**:接口中可以定义带有默认实现的方法,增强了接口的功能。 - **Stream API**:提供了一种新的集合操作方式,方便进行数据过滤...
javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...
javax.xml.bind.attachment 此包由基于 MIME 的包处理器实现,该处理器能够解释并创建基于 MIME 的包格式的已优化的二进制数据。 javax.xml.bind.helpers 仅由 JAXB 提供者用于: 提供某些 javax.xml.bind 接口的...
javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...
javax.xml.bind.attachment 此包由基于 MIME 的包处理器实现,该处理器能够解释并创建基于 MIME 的包格式的已优化的二进制数据。 javax.xml.bind.helpers 仅由 JAXB 提供者用于: 提供某些 javax.xml.bind 接口的...
javax.xml.bind.attachment 此包由基于 MIME 的包处理器实现,该处理器能够解释并创建基于 MIME 的包格式的已优化的二进制数据。 javax.xml.bind.helpers 仅由 JAXB 提供者用于: 提供某些 javax.xml.bind 接口的...
J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems(现已被Oracle收购)推出的一个企业级应用开发平台,专为构建分布式、多层的、面向服务的(SOA,Service-Oriented Architecture)应用程序而设计。...
javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...
8. **就业服务**:与多家企业有合作关系,确保学员毕业后一周内找到工作,合作企业包括IBM、中国移动等。 9. **培训课程详解**:针对Oracle和MySQL数据库进行深入讲解,并根据市场需求和合作企业的要求定制课程内容...