基于RESTful的架构(四)

基于JAX-RS的具体实现

1.1.  Jersey示例

Hello World:第一个 Jersey Web 项目

创建一个名为 “Jersey” 的WEB应用程序

设置 Jersey 的环境

  核心服务器:jersey-core.jar,jersey-server.jar,jsr311-api.jar,asm.jar

  核心客户端:(用于测试)jersey-client.jar

  JAXB 支持:(在高级样例中使用)jaxb-impl.jar,jaxb-api.jar,activation.jar,stax-api.jar,wstx-asl.jar

  JSON 支持:(在高级样例中使用)jersey-json.jar

 

在 web.xml 文件中定义 Jersey servlet 调度程度

 

<servlet>

  <servlet-name>Jersey REST Service</servlet-name>

<servlet-class>

  com.sun.jersey.spi.container.servlet.ServletContainer

</servlet-class>

  <init-param>

    <param-name>com.sun.jersey.config.property.packages</param-name>

    <param-value>sample.hello.resources</param-value>

  </init-param>

  <load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

  <servlet-name>Jersey REST Service</servlet-name>

  <url-pattern>/rest/*</url-pattern>

</servlet-mapping>

现在您将编写一个名为 HelloResource 的资源,它接受 HTTP GET 并响应 “Hello Jersey”。

com.dhgate.rest中的HelloResource

@Path("/hello")

public class HelloResource {

          @GET

          @Produces(MediaType.TEXT_PLAIN)

          public String sayHello() {

                 return "Hello Jersey";

          }

代码中几个需要强调的地方:

  资源类(Resource Class):注意,资源类是一个简单的 Java 对象 (POJO),可以实现任何接口。这增加了许多好处,比如可重用性和简单。

  注释(Annotation):在 javax.ws.rs.* 中定义,是 JAX-RS (JSR 311) 规范的一部分。

  @Path:定义资源基 URI。由上下文根和主机名组成,资源标识符类似于http://localhost:8080/Jersey/rest/hello

 @GET:这意味着以下方法可以响应 HTTP GET 方法。

@Produces:以纯文本方式定义响应内容 MIME 类型。

测试 Hello 应用程序

要测试应用程序,可以打开您的浏览器并输入 URL http://<host>:<port>/<appctx>/rest/hello。您将看到响应 “Hello Jersey”。

 

 

 

 

 

相关推荐