本文概述
- JAX-RS服务器代码
- JAX-RS客户端代码
在此示例中, 我们将球衣jar文件用于JAX-RS的球衣示例。
单击我下载jersey jar文件。
为hello world JAX-RS示例创建了4个文件:
- Hello.java
- web.xml
- index.html
- 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="http://www.srcmini.com/rest/hello">
Click Here<
/a>
现在, 在服务器上运行此应用程序。在这里, 我们在端口4444上使用Tomcat服务器。项目名称为restfuljersey。
运行项目后, 你将看到以下输出:
文章图片
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>
【JAX-RS示例jersey】单击我以下载不带球衣jar文件的Eclipse使用JAX-RS示例。
推荐阅读
- RESTful JAX-RS注释示例
- 跨平台移动端APP开发---简单高效的MUI框架
- tcp_wrapper,sudo,nsswitch与pam安全解析
- CSAPP 3e: Attack Lab
- Unity2017打包发布Android安卓整理
- leetcode42. Trapping Rain Water
- android 问答题
- 常用类一一基本数据类型的包装类(WrapperClass)一一Byte Short nteger Long Float DoubleCharacter Boolean
- Spring-MVC理解之一(应用上下文webApplicationContext)