IBM JAX-RS 入门
JAX-RS 是接口和 Java™ 注释的集合,它简化了服务器端 REST 应用程序的开发。通过使用 JAX-RS 技术,具象状态传输 (REST) 应用程序比其他类型的分布式系统更易于开发和使用。
关于此任务
JAX-RS 是用于快速开发 REST 应用程序的 Java API。虽然 JAX-RS 提供了比 Servlet 更快速的 Web 应用程序开发方法,但 JAX-RS 的主要目标是构建 RESTful 服务。JAX-RS 1.0 定义了用于构建 REST 应用程序的服务器端组件 API。JAX-RS 的 IBM® 实现提供了 JAX-RS (JSR 311) 规范的实现。
使用此入门指南可帮助您快速开发和部署简单 JAX-RS Web 应用程序。
此过程说明了如何开发包装在 Web 应用程序归档 (WAR) 模块内的简单 Hello World 服务。
过程
- 创建 Java 类。 此类用于表示某种类型的资源。
package com.ibm.jaxrs.sample; public class HelloWorldResource { }
- 使用 javax.ws.rs.Path 注释来注释 Java 类。 注释的值是应用程序上下文之后的 URL 的相对部分。应用程序上下文在部署期间进行全面定义。在 JAX-RS 术语中,此类称为根资源。
package com.ibm.jaxrs.sample; @javax.ws.rs.Path("/helloworld") public class HelloWorldResource { }
- 创建用于返回 Hello World! 响应的 Java 方法。 它适用于要在接收 HTTP 请求时调用的方法。
package com.ibm.jaxrs.sample; @javax.ws.rs.Path("/helloworld") public class HelloWorldResource { public String sayHelloWorld() { return "Hello World!"; } }
- 将 javax.ws.rs.GET 注释添加至 Java 方法。 现在,每当应用程序将 HTTP GET 请求接收到 /helloworld 路径时,都会调用 sayHelloWorld Java 方法。响应消息正文将包含 Hello World! 作为它的内容。
资源实现现在已完成。package com.ibm.jaxrs.sample; @javax.ws.rs.Path("/helloworld") public class HelloWorldResource { @javax.ws.rs.GET public String sayHelloWorld() { return "Hello World!"; } }
- 必须创建 JAX-RS javax.ws.rs.core.Application 配置子类。 这个子类需要返回与 JAX-RS 运行时环境相关的 Java 类集合。
package com.ibm.jaxrs.sample; public class HelloWorldAppConfig extends javax.ws.rs.core.Application { public Set<Class<?>> getClasses() { Set<Class<?>> classes = new HashSet<Class<?>>(); classes.add(com.ibm.jaxrs.sample.HelloWorldResource.class); return classes; } }
- 创建 web.xml Web 模块配置文件。 该文件会告诉 Web 容器,Web 模块包含 IBM JAX-RS REST Servlet。必须使用应用程序配置类来初始化 IBM JAX-RS Rest Servlet。
请参阅先前示例中指定的 Servlet 映射。该模式用于帮助确定 RESTful 服务的最终 URL。<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns=http://java.sun.com/xml/ns/j2ee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>HelloWorldApp</servlet-name> <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>com.ibm.jaxrs.sample.HelloWorldAppConfig</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloWorldApp</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
- 将 j2ee.jar 文件添加至类路径。
从 app_server_root/dev/JavaEE 目录获取 j2ee.jar 文件并将该 JAR 文件添加至类路径。编译这些类。
- 组装 Web 应用程序。 通过使用 JDK 随附的 jar 命令行工具,运行以下命令:
此命令会创建一个 WAR 文件。jar cvf helloworld-jaxrs.war *
- 将应用程序部署到应用程序服务器上。
部署应用程序时,系统可能会提示您为模块的上下文根提供一个值。上下文根用于定义应用程序上下文。
使用 IBM JAX-RS Servlet 时,以下 URL 会定义应用程序上下文:
由 @javax.ws.rs.Path 值指定的根资源 URL 是相对于应用程序上下文根而言。因此,如果在部署期间将上下文根定义为 myapplication,那么会将 URL 模式作为 /rest/* 定义在 web.xml 文件中,并且 Java 根资源类资源类具有 @javax.ws.rs.Path 值 /helloworld。 最终 URL 的示例如下所示:http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>/servlet_mapping_pattern
http://localhost:9080/myapplication/rest/helloworld
现在,您可以使用 Web 浏览器或任何其他 HTTP 客户机向最终 URL 发送客户机请求。
结果
您已开发 JAX-RS Web 应用程序并将其部署到应用程序服务器。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_getstarted
文件名:twbs_jaxrs_getstarted.html