个性化阅读
专注于IT技术分析

JAX-RS示例jersey

本文概述

我们可以通过jersey实现创建JAX-RS示例。为此, 你需要加载jersey jar文件或使用Maven框架。

在此示例中, 我们将球衣jar文件用于JAX-RS的球衣示例。


单击我下载jersey jar文件。


为hello world JAX-RS示例创建了4个文件:

  1. Hello.java
  2. web.xml
  3. index.html
  4. HelloWorldClient.java

前三个文件是为服务器端创建的, 一个应用程序是为客户端创建的。


JAX-RS服务器代码

文件:Hello.java

package com.srcmini.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class Hello {
  // This method is called if HTML and XML is not requested
  @GET
  @Produces(MediaType.TEXT_PLAIN)
  public String sayPlainTextHello() {
    return "Hello Jersey Plain";
  }
  // This method is called if XML is requested
  @GET
  @Produces(MediaType.TEXT_XML)
  public String sayXMLHello() {
    return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
  }

  // This method is called if HTML is requested
  @GET
  @Produces(MediaType.TEXT_HTML)
  public String sayHtmlHello() {
    return "<html> " + "<title>" + "Hello Jersey" + "</title>"
        + "<body><h1>" + "Hello Jersey HTML" + "</h1></body>" + "</html> ";
  }
}

文件:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
id="WebApp_ID" version="3.0">
 <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.srcmini.rest</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>
</web-app>

档案:index.html

<a href="rest/hello">Click Here</a>

现在, 在服务器上运行此应用程序。在这里, 我们在端口4444上使用Tomcat服务器。项目名称为restfuljersey。

运行项目后, 你将看到以下输出:

使用jersey输出的jax rs示例

JAX-RS客户端代码

ClientTest.java文件在服务器应用程序内部创建。但是, 你也可以通过具有服务接口和jersey jar文件的其他应用程序来运行客户端代码。

文件:ClientTest.java

package com.srcmini.restclient;
import java.net.URI;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
import org.glassfish.jersey.client.ClientConfig;
public class ClientTest {
  public static void main(String[] args) {
    ClientConfig config = new ClientConfig();
    Client client = ClientBuilder.newClient(config);
    WebTarget target = client.target(getBaseURI());
    //Now printing the server code of different media type
    System.out.println(target.path("rest").path("hello").request().accept(MediaType.TEXT_PLAIN).get(String.class));
    System.out.println(target.path("rest").path("hello").request().accept(MediaType.TEXT_XML).get(String.class));
    System.out.println(target.path("rest").path("hello").request().accept(MediaType.TEXT_HTML).get(String.class));
  }
  private static URI getBaseURI() {
    //here server is running on 4444 port number and project name is restfuljersey
    return UriBuilder.fromUri("http://localhost:4444/restfuljersey").build();
  }
}

输出:

Hello Jersey Plain
<?xml version="1.0"?><hello> Hello Jersey</hello>
<html> <title>Hello Jersey</title><body><h1>Hello Jersey HTML</h1></body></html>

单击我以下载不带球衣jar文件的Eclipse使用JAX-RS示例。

赞(0)
未经允许不得转载:srcmini » JAX-RS示例jersey

评论 抢沙发

评论前必须登录!