Web 消息传递服务从 webmsg.json 文件中读取配置信息,此文件在 JavaTM Platform, Enterprise Edition (Java EE) 应用程序 Web 模块的 WebContent/WEB-INF 目录中。应用程序启动和停止时就会读取此信息,以使用配置信息来初始化 Web 消息传递服务。此文件位于 Web 模块的 web.xml 文件旁边,并且不能更改此文件的位置。webmsg.json 文件是以 JavaScriptTM 对象表示法 (JSON) 格式指定的,具体而言,此文件的内容应表示一个 JSON 对象。JSON 对象是一个键/值对集合。请参阅 Web 消息传递配置文件的以下示例:
{ "WebMsgServlet": { "busName": "thebus", "destination": "Default.Topic.Space", "clientCanPublish": false, "longPollTimeout": 30 } } |
JSON 对象中的每个键都在指定了 webmsg.json 文件的同一 Web 模块中指定一个现有 Servlet 名称。每个键的值是指定了 Web 消息传递配置选项的另一个 JSON 对象。传入 Web 消息传递请求由所指定 Servlet 的 Servlet 映射进行确定。这些传入请求由指定的配置选项来处理。以下示例是一个包含 WebMsgServlet Servlet 及相关 Servlet 映射的 web.xml 文件的一个代码段:
<servlet> <display-name>WebMsgServlet</display-name> <servlet-name>WebMsgServlet</servlet-name> <servlet-class> com.ibm.websphere.webmsg.servlet.WebMsgServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>WebMsgServlet</servlet-name> <url-pattern>/stockServlet</url-pattern> </servlet-mapping> |
在前一个示例中,WebMsgServlet Servlet 映射至 /stockServlet。任何映射至 /stockServlet 的传入 Web 消息传递请求都是使用前一示例 webmsg.json 中的配置参数来处理的。在这种情况下,Web 消息传递请求使用服务集成总线 thebus,缺省主题空间 Default.Topic.Space,Bayeux 长轮询超时为 30 秒,并且 Web 消息传递客户机不能将消息发布至服务器。
大多数配置只需要创建一个 Servlet 和相关 webmsg.json 配置项。有时候,必须在单个 Web 模块中创建多个定义。下面是一些这样的示例,例如,连接至不同的服务集成总线,指定另一个缺省目标,按 Bayeux 长轮询超时来分隔客户机。要根据配置参数来分隔传入请求,新的 Servlet 定义将映射至 com.ibm.websphere.webmsg.servlet.WebMsgServlet,并且必须创建新的 Servlet 映射。最后,使用期望的配置参数在 webmsg.json 中创建一个新条目。此条目必须具有一个映射至新创建的 Servlet 的键。
下列子节详细描述了所有可能存在的 Web 消息传递配置选项。