我们可以通过 jersey 实现创建JAX-RS示例。 为此,需要加载 jersey相关jar文件或使用Maven框架。
在这个例子中,我们使用jersey jar文件来实现JAX-RS jersey示例。
打开Eclipse,创建一个Web工程: restfuljersey,如下图所示 -
JAX-RS创建了4个文件示例:
Hello.java
web.xml
index.html
HelloWorldClient.java
前3个文件是为服务器端创建的,最后一个文件:HelloWorldClient.java 是为客户端应用程序创建的。
JAX-RS服务器代码
文件:Hello.java -
package com.yiibai.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 Jersey" + "";
}
// This method is called if HTML is requested
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHtmlHello() {
return " " + "
" + "Hello Jersey" + ""+ "
" + "Hello Jersey HTML" + "
" + " ";}
}
文件:web.xml -
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">
Jersey REST Service
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.yiibai.rest
1
Jersey REST Service
/rest/*
文件:index.html -
现在在服务器上运行此应用程序 这里Tomcat服务器是在端口8080上运行。项目名称是restfuljersey。
运行项目后,点击上面链接,将看到以下输出:
JAX-RS客户端代码
文件:ClientTest.java 在服务器应用程序内创建,也可以通过服务接口和jersey jar文件来运行其他应用程序的客户端代码。
文件:ClientTest.java -
package com.yiibai.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 8080 port number and project name is restfuljersey
return UriBuilder.fromUri("http://localhost:8080/restfuljersey").build();
}
}
执行上面客户端代码,得到以下结果 -
Hello Jersey Plain
<?xml version="1.0"?> Hello Jersey
Hello JerseyHello Jersey HTML
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。