`

java搭建webservice基于jersey

 
阅读更多

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
最简包: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框架

    【基于Jersey搭建WebService框架】 在Java开发中,构建RESTful Web服务时,Jersey是一个常用的框架。它作为Java EE的一部分,提供了实现 Representational State Transfer (REST) 架构风格的工具集。本教程将围绕...

    使用Jersey和Tomcat搭建的RESTful WebService

    **Jersey框架**:Jersey是Java平台上的一个开源框架,它实现了JAX-RS(Java API for RESTful Web Services)规范,使得开发者可以轻松地创建和部署RESTful服务。Jersey提供了一套全面的API和工具,包括注解、过滤器...

    Jersey RESTful WebService框架学习(八)maven搭建

    在本篇中,我们将深入探讨如何使用Maven搭建一个基于Jersey实现的RESTful Web服务。Jersey是Java EE平台下的一个开源项目,它提供了对JAX-RS(Java API for RESTful Web Services)规范的全面支持,让我们能够轻松...

    jersey+spring rest webservice web maven

    标题中的"jersey+spring rest webservice web maven"是一个基于Java开发的RESTful Web服务架构,它结合了几个关键的技术组件。让我们深入探讨每个部分: 1. **Jersey**: Jersey是Java RESTful Web服务(JAX-RS)...

    使用Jersey框架搭建Rest服务

    Jersey是Java世界中广泛使用的开源框架,用于实现RESTful Web服务。本教程将详细介绍如何使用Jersey来搭建REST服务。 首先,了解REST的基本概念至关重要。REST是一种架构风格,它强调通过URI(统一资源标识符)来...

    restful-webService

    "restful-webService模板"可能包含了一些基本的类和配置文件,如资源类、配置文件(如web.xml)、Maven或Gradle构建文件等,为快速搭建REST服务提供起点。开发者可以根据自己的需求,扩展这些模板,添加具体的功能...

    java开发常用jar包之webservice.rar

    JAX-WS是Sun Microsystems推出的用于构建SOAP(Simple Object Access Protocol)Web服务的标准API,它使得Java开发者可以方便地创建和部署基于WSDL(Web Services Description Language)的Web服务。这个压缩包可能...

    利用spring整合jersey和Protobuf,搭建REST web服务

    这是一个典型的企业级应用开发场景,其中Spring提供了强大的依赖注入和AOP(面向切面编程)功能,Jersey作为JAX-RS(Java API for RESTful Web Services)的实现,负责处理HTTP请求和响应,而Protobuf则是一种高效的...

    ssh rest ws jax-rs jersey 做的小网站后台及web service接口

    5. **JAX-RS** 和 **Jersey**:JAX-RS是Java的RESTful Web服务API,而Jersey是JAX-RS的参考实现。在本项目中,Jersey用于创建和部署RESTful Web服务,使得服务端可以通过JSON或XML格式暴露数据,与客户端进行通信。 ...

    jdk webservice

    标题 "JDK Webservice" 指的是使用Java Development Kit (JDK) 来开发Web服务。Web服务是一种通过互联网交换结构化信息的方式,它允许不同的应用程序之间进行通信。在Java中,JDK提供了标准的API,如Java API for ...

    restfulwebservice发布服务接口

    通过学习这个例子,你可以了解如何使用jersey-1.17.jar搭建RESTful服务,这对于开发分布式系统、API接口或者移动应用后端是非常有价值的。RESTful服务因其简洁、高效、易于理解和实现的特点,已经成为现代Web服务的...

    Java个人简历模板2.doc

    求职者负责商品管理、商品前台页面、单品展示、个人中心和订单管理等多个模块的实现,其中包括使用jersey搭建图片服务器,使用fckEditor增强编辑体验,使用CXF框架实现Web Service,以及Freemarker生成静态页面等...

    Couchbase

    在文件名称列表中,我们看到"Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用.doc"。这表明该文档将介绍如何在Eclipse集成开发环境中,利用Jersey库(JAX-RS规范的一个实现)和Tomcat服务器来创建和测试...

    projeto-web-service-cursojava

    【标题】"projeto-web-service-cursojava" 是一个基于Java技术实现的Web服务项目,旨在教授和实践如何创建和使用Web服务。Web服务是一种通过网络(通常是HTTP协议)进行通信的应用程序接口(API),允许不同系统之间...

    Rop framework

    与传统的 WebService 框架(例如 CXF 和 Jersey)不同,Rop 不仅提供了 WebService 的核心功能,还针对服务开放平台中的应用层问题提供了多种解决方案。 **特点**: 1. **易于上手**:Rop 的设计使得开发者能够...

    RESTful Web 服务 - 快速指南

    Jersey Framework是一个流行的Java库,实现了JAX-RS标准,提供了创建RESTful Web服务的强大功能。 通过以上介绍,我们可以了解到RESTful Web服务的基本原理及其应用场景,并掌握了如何搭建开发环境以创建自己的...

Global site tag (gtag.js) - Google Analytics