JMS 聊天示例应用程序
目录
JMS (Java Messaging Service) 是一种用于 J2EE 的战略技术。JMS 与其它技术协作,在分布式计算环境中的组件之间提供一种可靠的异步通信。企业消息处理现在被认为是构建企业应用程序的一种基本机制。通过把 Java 技术与企业消息处理相结合,JMS API 为解决企业计算问题提供了一种全新的、强大的工具。
OC4J JMS 供应程序允许用户选择驻留内存的或基于文件系统的消息可持续性。本示例应用程序演示了驻留内存的队列的用法,该队列在 jms.xml 中配置。
MDB (Message Driven Bean) 是一种非会话状态的、服务器端的、事务敏感的组件,它由 Java 消息 (javax.jms.Message) 驱动。当从 JMS 队列或主题接收到一条消息时,EJB Container 就会用 MDB。它充当一个简单的消息监听器。
此示例应用程序演示了驻留内存的 JMS 队列和 MDB 的特性和用法。此示例使用一个聊天应用程序的情景来演示这些特性。使用此应用程序,用户可以登录到一个聊天室并向其他注册用户发送消息或者接收来自他们的消息。
本示例应用程序由两个组件构成。下面介绍了这两个组件:
-
服务器组件:此组件是一个 ear 文件并在 OC4J 上运行。它由两个 servlet(用于接收和发送消息)和一个 MDB(用于监听入列的消息)。任何对队列(单接收器)或主题(多接收器)的操作都可以通过该组件中提供的类来完成。
-
客户端组件:此组件是一个 jar 文件,由 Java 类组成,这些 Java 类生成一个 swing 界面来帮助登录的用户与其它注册用户聊天。当用户第一次启动该应用程序时,他/她将会看见下面的屏幕
通过这个窗口,用户可以指定在哪里运行聊天服务器。用户还指定他/她将要使用的 ChatID。如果您以前曾经登录到该应用程序,那么应用程序会记住您的 ChatID。在这种情况下,请选择 I am an existing user。应用程序将会一直记住 ChatID 直到 OC4J 服务器重启。请注意该窗口的用户界面可能会根据系统设置的不同而有所变化。 当他/她成地在聊天服务器上注册了 ChatID 之后,将会出现下面的窗口。
现在,用户将通过此窗口聊天。所有来自其它用户的消息将显示在上面的文本区。用户可以在底部的文本区键入消息并点击 Send 按钮或敲击键盘上的 Return 键给其它用户发送消息。 此应用程序还存储离线消息。这意味着如果一个注册用户不处于活动状态并且在此期间有聊天发生,那么此用户下次将会接收到所有的消息。这些消息会一直存储在服务器中直到被所有用户接收到或服务器重启。
有关提取文件、部署以及成功运行应用程序的逐步指导,请参考安装示例。
下面显示的是可交付的 JMSChatSample.jar 的目录结构。请注意,对于 JMS 功能很重要的文件位于服务器中,也就是文件 SendMessage.java、GetMessage.java、ChatSubscriber.java 和 ListenerMBDBean.java。
| 目录 |
文件 |
说明 |
| ChatSample\doc |
Readme.html |
本文件 |
| Install.html |
本文件包含安装和部署示例应用程序所需的指导。 |
| ChatSample\server\Chat\src\oracle\otnsamples\oc4jjms |
SendMessage.java |
聊天客户端使用此 Servlet 来发送消息。 |
| GetMessage.java |
聊天客户端使用此 Servlet 来接收消息。 |
| ChatSubscriber.java |
此 Java 类具有添加用户以及把消息从队列中删除的重要方法。此类中的方法被 GetMessage.java servlet 使用。 |
| ChatSample\server\Chat\src\oracle\otnsamples\oc4jjms\impl |
ListenerMDBBean.java |
MDB 监听聊天客户端发出的消息。 |
| ChatSample\client\src\oracle\otnsamples\oc4jjms |
所有的 Java 文件 |
这些文件共同组成客户端 Swing 应用程序来访问聊天服务器。 |
|