部署 JAX-RS 1.1 Web 应用程序

在组装 Java™ API for RESTful Web Services (JAX-RS) Web 应用程序之后,您可以将 Web 应用程序归档 (WAR) 包或企业归档 (EAR) 包部署到应用程序服务器。

开始之前

要部署 JAX-RS Web 应用程序,您需要一个针对 RESTful 服务进行配置和启用的 WAR 包或 EAR 包。

关于此任务

每个 Web 应用程序都必须具有上下文根,这样才能成功地部署 Web 应用程序。在应用程序组装或应用程序部署期间,将在应用程序部署描述符中为每个 Web 模块定义上下文根。上下文根与 WAR 文件中定义的 Servlet 映射共同组成用户访问该 Servlet 时需要输入的完整 URL。每个已部署的 Web 应用程序的上下文根在服务器上都必须唯一。上下文根也可以为空。例如,如果 Web 应用程序使用上下文根 sample/application/,那么 Web 应用程序请求 URL 将以 http://<hostname>:<port>/sample/application/ 开头。

Servlet 的 URL 模式将被追加到 Web 应用程序的上下文根。例如,如果上下文根是 sample/application/,而 Servlet URL 映射是 rest/api/*,那么 JAX-RS Web 应用程序的基本 URI 将是 http://<hostname>:<port>/sample/application/rest/api

过程

将 JAX-RS Web 应用程序 WAR 包或 EAR 包部署到应用程序服务器。 有关部署 Web 应用程序的更多信息,请阅读有关安装企业应用程序文件的内容。

结果

JAX-RS Web 应用程序已部署完毕并可用于处理业务。

如果您可以通过在浏览器中输入统一资源定位符 (URL) 来访问应用程序或通过以下链接访问应用程序,那么表明部署 Java API for RESTful Web Services (JAX-RS) Web 应用程序成功。如果您无法访问应用程序,请执行下列步骤以消除部署期间可能会发生的某些常见错误。

避免故障 避免故障:

请使用以下提示来更正 JAX-RS Web 应用程序部署期间的常见错误。

在服务器响应中,向客户机发回了 HTTP 404 Not Found 错误消息。
要解决此问题,请执行下列操作:
  • 验证是否已使用 @javax.ws.rs.Path 注释对根资源类进行了注释,并验证该注释中的值是否正确。不带 @Path 注释的根资源类不会向 JAX-RS 运行时注册。要了解更多信息,请参阅“在 RESTful 应用程序中定义资源的 URI 模式”信息。
  • 验证是否已将该根资源类添加到 javax.ws.rs.core.Application 类的子类的 getClasses() 方法所返回的类集。JAX-RS 运行时环境无法识别未在 javax.ws.rs.core.Application 类的子类中注册的类。要了解更多信息,请参阅“在 RESTful 应用程序中定义资源的 URI 模式”信息。
  • 根据期望的 URL 模式,验证 web.xml 配置是否正确。有关更多信息,请参阅 web.xml 文件中的 JAX-RS Servlet 和过滤器信息。
  • 验证正在使用的 URL 是否正确并是否包含上下文根。如果您正在使用 Servlet,那么 Servlet URL 模式将是最终的 URL 的组成部分。在您的 Web 应用程序中,使用过滤器可能更好。有关更多信息,请参阅 web.xml 文件中的 JAX-RS Servlet 和过滤器信息。
在服务器响应中,向客户机发送回了 HTTP 405 Method Not Allowed 错误消息。
如果请求 URL 的 Servlet URI 与资源方法的路径值相匹配,但是所发送的 HTTP 方法与方法注释不匹配,那么会返回 HTTP 状态码 405 Method Not Allowed。

在以下代码示例中,请求 URL 以 sayhello 结尾,但是该请求包含 POST 而不是 GET,因此会返回 405。

@javax.ws.rs.Path("helloworld")
public class SampleResource {

...

@javax.ws.rs.Path("sayhello")
@javax.ws.rs.GET
public String getHello() { ...

要解决此问题,请执行下列操作:

  • 确认所发送的 HTTP 方法与方法注释相匹配。
在服务器响应中,向客户机自动发回了 HTTP 406 Not Acceptable 错误消息。
要解决此问题,请执行下列操作:
  • 验证入局请求中的 Accept HTTP 请求头是否正确。要了解更多信息,请参阅“实现基于 HTTP 头的内容协商”信息。
  • 验证资源方法或资源类的 @javax.ws.rs.Produces 值是否与入局 Accept HTTP 请求头兼容。要了解更多信息,请参阅“在 RESTful 应用程序中定义资源的介质类型”信息。
在服务器响应中,向客户机自动发回了 HTTP 415 Unsupported Media Type 错误消息。
要解决此问题,请执行下列操作:
  • 请确认入局请求中的 Content-Type HTTP 请求头正确并且已发送。要了解更多信息,请参阅“在 RESTful 应用程序中定义资源的介质类型”信息。
  • 验证资源方法或资源类的 @javax.ws.rs.Consumes 值是否与入局 Content-Type HTTP 请求头兼容。
在服务器响应中,向客户机自动发回了“HTTP 204 无内容”响应状态。
要解决此问题,请执行下列操作:
  • 确定资源中的空响应是否应该导致“204 无内容”响应代码。
gotcha

有关已知问题及其解决方案的信息,请参阅 IBM Support 页面。

IBM® 技术支持拥有的文档可节省您收集解决此问题所需信息的时间。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_deploy
文件名:twbs_jaxrs_deploy.html