REST(Representational State Transfer)是基于 SOAP 和 Web 服务描述语言的 Web 服务的更为简单的替代方法。REST 对 Web 的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计。
我们这里是基于jersey来在java中实现webService服务。
Jersey是JAX-RS 的参考实现。Jersey:https://jersey.dev.java.net/
JAX -RS 为在Java上构建RESTful风格的web services提供了一组标准API。这组API基本上由一组注解(annotations)和相关的类和接口组成的。我们可以通过为 POJO 添加注解来发布 web services。
一.将jersey相关的jar包拷贝到java web项目的lib目录。
asm-3.1.jar
jackson-core-asl-1.8.3.jar
jackson-jaxrs-1.8.3.jar
jackson-mapper-asl-1.8.3.jar
jackson-xc-1.8.3.jar
jersey-client-1.10.jar
jersey-core-1.10.jar
jersey-json-1.10.jar
jersey-server-1.10.jar
jersey-servlet-1.10.jar
jettison-1.1.jar
jsr311-api-1.1.1.jar
jackson-core-asl-1.8.3.jar
jackson-jaxrs-1.8.3.jar
jackson-mapper-asl-1.8.3.jar
jackson-xc-1.8.3.jar
jersey-client-1.10.jar
jersey-core-1.10.jar
jersey-json-1.10.jar
jersey-server-1.10.jar
jersey-servlet-1.10.jar
jettison-1.1.jar
jsr311-api-1.1.1.jar
最简包:jersey-core-1.10.jar , jersey-server-1.10.jar, asm-3.1.jar, jsr311-api-1.1.1.jar
二.配置web.xml
<!-- REST Service 提供 web service服务 --> <servlet> <servlet-name>JAX-RS REST Servlet</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>4</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JAX-RS REST Servlet</servlet-name> <!-- 指定了services路径下的所有都将被jersey进行拦截 --> <url-pattern>/services/*</url-pattern> </servlet-mapping>
三.建立service端Java类。使用注解将其暴露为web服务对象。
package com.XXXXXXXXXXXXX; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import net.sf.json.JSONException; import net.sf.json.JSONObject; import org.apache.log4j.Logger; import com.txsoft.xmcp.operation.common.util.CommonUtils; /** * History Resource * * @author jiangbo * */ @Path("/xmcp/test") public class WebServiceResource { /** * lo4j */ private static Logger logger = Logger.getLogger(WebServiceResource.class); /** * main * * @param json * @param method * @return */ @Path("/{method}") @POST @Consumes( { "application/json", "application/xml" }) @Produces( { "application/json", "application/xml" }) public JSONObject main(JSONObject json, @PathParam("method") String method) { logger.debug("===============interface input param JSON data:" + json); JSONObject rejson = new JSONObject(); // 初始化内存中的热力站数据 rejson = initStationInfo(json, method); logger.debug("===============interface return JSON data:" + rejson); return rejson; } }
四.新建客户端类。实现对服务端的调用。
1.使用Jersey Client 与 REST 服务通讯
客户端调用服务端时候可以通过post方式或者get方式分别调用。可以传参数,也可以无参数。
这里给一个 post的 带参数的例子
package com.txsoft.xmcp.operation.resource; import java.net.URI; import java.net.URISyntaxException; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.WebResource; /** * * @author JiangBo */ public class webServiceClient { public static void main(String[] args) throws URISyntaxException { Client client = Client.create(); URI u = new URI("http://localhost:8888/XMCP/services/xmcp/initStationInfo"); // 客户端的核心类是 WebResource。据根 URI 构建一个请求 URL。发送请求并获取响应。 WebResource resource = client.resource(u); // 以post的方式进行通讯 // POST 请求 :一个 POST 请求相当于一个 GET 请求和一个 PUT 请求的综合 // 使用 POST 请求来发送一个实体到指定的 Web 资源并且接收另一个实体。使用 WebResource 类的 post() 方法来发送一个 HTTP POST 请求到指定的 Web 资源。 // 发送一个带有查询参数以及进行了 URL 编码的表单数据的 POST 请求 String jsonObject = resource.type("application/json").post(String.class, "{\"number\":\"aaaaaa\"}"); System.out.println(jsonObject); } }
相关推荐
【基于Jersey搭建WebService框架】 在Java开发中,构建RESTful Web服务时,Jersey是一个常用的框架。它作为Java EE的一部分,提供了实现 Representational State Transfer (REST) 架构风格的工具集。本教程将围绕...
**Jersey框架**:Jersey是Java平台上的一个开源框架,它实现了JAX-RS(Java API for RESTful Web Services)规范,使得开发者可以轻松地创建和部署RESTful服务。Jersey提供了一套全面的API和工具,包括注解、过滤器...
在本篇中,我们将深入探讨如何使用Maven搭建一个基于Jersey实现的RESTful Web服务。Jersey是Java EE平台下的一个开源项目,它提供了对JAX-RS(Java API for RESTful Web Services)规范的全面支持,让我们能够轻松...
标题中的"jersey+spring rest webservice web maven"是一个基于Java开发的RESTful Web服务架构,它结合了几个关键的技术组件。让我们深入探讨每个部分: 1. **Jersey**: Jersey是Java RESTful Web服务(JAX-RS)...
Jersey是Java世界中广泛使用的开源框架,用于实现RESTful Web服务。本教程将详细介绍如何使用Jersey来搭建REST服务。 首先,了解REST的基本概念至关重要。REST是一种架构风格,它强调通过URI(统一资源标识符)来...
"restful-webService模板"可能包含了一些基本的类和配置文件,如资源类、配置文件(如web.xml)、Maven或Gradle构建文件等,为快速搭建REST服务提供起点。开发者可以根据自己的需求,扩展这些模板,添加具体的功能...
JAX-WS是Sun Microsystems推出的用于构建SOAP(Simple Object Access Protocol)Web服务的标准API,它使得Java开发者可以方便地创建和部署基于WSDL(Web Services Description Language)的Web服务。这个压缩包可能...
这是一个典型的企业级应用开发场景,其中Spring提供了强大的依赖注入和AOP(面向切面编程)功能,Jersey作为JAX-RS(Java API for RESTful Web Services)的实现,负责处理HTTP请求和响应,而Protobuf则是一种高效的...
5. **JAX-RS** 和 **Jersey**:JAX-RS是Java的RESTful Web服务API,而Jersey是JAX-RS的参考实现。在本项目中,Jersey用于创建和部署RESTful Web服务,使得服务端可以通过JSON或XML格式暴露数据,与客户端进行通信。 ...
标题 "JDK Webservice" 指的是使用Java Development Kit (JDK) 来开发Web服务。Web服务是一种通过互联网交换结构化信息的方式,它允许不同的应用程序之间进行通信。在Java中,JDK提供了标准的API,如Java API for ...
通过学习这个例子,你可以了解如何使用jersey-1.17.jar搭建RESTful服务,这对于开发分布式系统、API接口或者移动应用后端是非常有价值的。RESTful服务因其简洁、高效、易于理解和实现的特点,已经成为现代Web服务的...
求职者负责商品管理、商品前台页面、单品展示、个人中心和订单管理等多个模块的实现,其中包括使用jersey搭建图片服务器,使用fckEditor增强编辑体验,使用CXF框架实现Web Service,以及Freemarker生成静态页面等...
在文件名称列表中,我们看到"Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用.doc"。这表明该文档将介绍如何在Eclipse集成开发环境中,利用Jersey库(JAX-RS规范的一个实现)和Tomcat服务器来创建和测试...
【标题】"projeto-web-service-cursojava" 是一个基于Java技术实现的Web服务项目,旨在教授和实践如何创建和使用Web服务。Web服务是一种通过网络(通常是HTTP协议)进行通信的应用程序接口(API),允许不同系统之间...
与传统的 WebService 框架(例如 CXF 和 Jersey)不同,Rop 不仅提供了 WebService 的核心功能,还针对服务开放平台中的应用层问题提供了多种解决方案。 **特点**: 1. **易于上手**:Rop 的设计使得开发者能够...
Jersey Framework是一个流行的Java库,实现了JAX-RS标准,提供了创建RESTful Web服务的强大功能。 通过以上介绍,我们可以了解到RESTful Web服务的基本原理及其应用场景,并掌握了如何搭建开发环境以创建自己的...