下面这一节包含在使用 Web 消息传递服务时的故障诊断信息。
在安装支持 Web 消息传递的应用程序之前,必须安装并启用 Web 消息传递服务运行时。如果在未安装并启用 Web 消息传递服务运行时的情况下就安装支持 Web 消息传递的应用程序,那么当您尝试访问 Web 消息传递 URI 时将显示以下错误消息和发生 503 Servlet 错误。
CWPSB1701E: 没有为以下传入 URI 配置 Web 消息传递服务:/uri
当遇到此消息时,应首先验证是否安装并启用了 Web 消息传递服务。有关更多详细信息,请参阅启用 Web 消息传递服务。如果成功安装并启用了 Web 消息传递服务,那么在服务器启动时将显示下列日志消息:
CWPSB1102I: 已启动 Web 消息传递服务。
如果在安装并启用了 Web 消息传递服务之后仍然遇到配置错误,那么请验证下列事项:
Web 消息传递服务使用 Bayeux 协议来进行通信。对于大多数 Bayeux 协议消息字段,有一个成功的布尔字段和相关联的错误字段。如果 Bayeux 操作失败,那么 Web 消息传递服务就会尝试发送错误信息,以帮助应用程序开发者和最终用户确定该操作失败的原因。Bayeux 错误字符串格式中包含用冒号分隔的三个自变量。第一个自变量是错误代码,提供它是为了便于比较。第二个自变量是故障中涉及到的、用逗号分隔的自变量列表。最后一个自变量是对错误消息的简短描述。以下是一些示例错误消息:
下表列示了当操作失败时 Web 消息传递服务发送给 Bayeux 客户机的大多数错误消息。调试客户机故障时请参阅此表。在许多情况下,当遇到这些客户机错误时,请检查服务器日志以了解更多信息。
错误代码 | 简短描述 | 自变量 | 描述 |
---|---|---|---|
300 | 版本号不匹配 | 传递给服务器的最低版本和最高版本。 | 服务器找不到与“客户机提供的版本”和“最低版本”字段相匹配的版本。在大多数情况下,服务器将请求客户机与服务器在“版本”和“最低版本”字段中提供的版本号重新握手。 |
301 | 连接类型不匹配 | 客户机提供的连接类型。 | 尝试握手或者执行某种连接类型的连接的客户机不受服务器支持。握手响应将包含受支持的连接类型列表。如果在执行握手请求期间接收到此错误消息,那么客户机应尝试与受支持连接类型列表中的有效值重新连接。如果在对连接请求的响应中包含此错误,那么服务器将指示客户机重新握手并同意常见的连接类型。 |
302 | 扩展不匹配 | 提供的扩展。 | Bayeux 协议提供了一种扩展机制来启用 Bayeux 协议支持的功能之外的功能。在某些情况下,可能提供了无效的扩展。在本发行版中,服务器将忽略任何不识别的扩展。 |
400 | 服务器不识别该请求。 | 无 | 客户机发送了服务器不识别的请求。您可能由于下列原因而接收到此错误消息:
|
401 | 指定的客户机标识未知。 | 指定的客户机标识。 | 当服务器不识别客户机标识时就会产生此消息。在大多数情况下,Bayeux 建议机制将提供此错误消息,告知客户机应重新握手和重新预订先前所预订的任何主题。通常,发生此错误的原因是:
|
402 | 请求缺少必需的参数。 | 缺少的参数。 | Bayeux 协议要求许多 Bayeux 消息都提供必需的字段。如果缺少必需的字段,就会抛出错误消息以指示缺少哪个字段。 |
403 | 禁止使用所指定的通道。 | 被禁止使用的通道。 | 如果客户机在没有适当权限的情况下尝试预订或发布至某个通道,那么就会将此错误发送回客户机。 |
404 | 指定的通道未知。 | 未知通道。 | 客户机试图预订、取消预订或者发布至一个未知通道。通常,当指定的 multipleDestination 通道格式和第一个自变量与现有服务集成总线主题空间或主题空间别名不匹配时就会抛出此错误。 |
405 | 指定的通道语法无效。 | 无效通道格式。 | 当指定了无效通道格式时就会产生此消息。有关有效 Bayeux 通道格式的信息,请参阅 Bayeux 协议。 |
406 | 指定的扩展字段无效。 | 无效扩展字段。 | 当给定了无效扩展字段时就会产生此消息。Web 消息传递服务实现将忽略已提供、但是它不识别的扩展字段,因此客户机看不到此错误消息。 |
407 | 发布请求已失败。 | 发出发布请求的通道。 | 此错误消息表示发布请求已失败。在大多数情况下,这表示 clientCanPublish 选项已设置为 false。 |
408 | 客户机没有权限进行连接以接收或发布消息。 | 无 | 在握手或者处理连接请求期间可能会提供此错误消息。在大多数情况下,此错误消息表示在配置服务集成总线的安全性时(尤其是在为总线连接器角色授予对此传入用户的权限时)发生了问题。 |
500 | 服务器遇到了内部错误,未能完成请求。 | 无 | 服务器遇到了内部错误。请检查服务器日志,以了解更多信息。 |
503 | 服务不可用。 | 无 | 与服务集成总线进行通信时发生错误。发生此错误的原因通常是,与消息传递引擎进行通信时发生故障,例如消息传递引擎已停止。请检查服务器日志,以了解更多信息。 |