RESTful WebService入门

原创 2015年11月17日 16:54:28
RESTful WebService是比基于SOAP消息的WebService简单的多的一种轻量级Web服务,RESTful WebService是没有状态的,发布和调用都非常的轻松容易。
 
下面写一个最简单的Hello World例子,以便对RESTful WebService有个感性认识。因为非常专业理论化的描述RESTful WebService是一件理解起来很痛苦的事情。看看例子就知道个大概了,再看理论就容易理解多了。
 
/**
* RESTful WebService入门
* @author leizhimin 2009-11-18 16:42:43
*/

package example;

import com.sun.jersey.api.container.httpserver.HttpServerFactory;
import com.sun.net.httpserver.HttpServer;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import java.io.IOException;

//指定URI
@Path("/helloworld")
public class HelloWorld {
        //处理HTTP的GET请求
        @GET
        // 处理请求反馈的内容格式为"text/plain"
        @Produces("text/plain")
        public String getClichedMessage() {
                return "Hello World!";
        }

        public static void main(String[] args) throws IOException {
                //创建RESTful WebService服务
                HttpServer server = HttpServerFactory.create("http://192.168.14.117:9999/");
                //启动服务,这会导致新开一个线程
                server.start();
                //输出服务的一些提示信息到控制台
                System.out.println("RESTful WebService服务已经启动");
                System.out.println("服务访问地址: http://192.168.14.117:9999/helloworld");
        }
}
 
运行这个类,控制台输入出:
2009-11-18 17:25:37 com.sun.jersey.api.core.ClasspathResourceConfig init
信息: Scanning for root resource and provider classes in the paths:
    D:\jdk16\jre\lib\alt-rt.jar
    D:\jdk16\jre\lib\charsets.jar
    D:\jdk16\jre\lib\deploy.jar
    D:\jdk16\jre\lib\javaws.jar
    D:\jdk16\jre\lib\jce.jar
    D:\jdk16\jre\lib\jsse.jar
    D:\jdk16\jre\lib\management-agent.jar
    D:\jdk16\jre\lib\plugin.jar
    D:\jdk16\jre\lib\resources.jar
    D:\jdk16\jre\lib\rt.jar
    D:\jdk16\jre\lib\ext\dnsns.jar
    D:\jdk16\jre\lib\ext\localedata.jar
    D:\jdk16\jre\lib\ext\sunjce_provider.jar
    D:\jdk16\jre\lib\ext\sunmscapi.jar
    D:\jdk16\jre\lib\ext\sunpkcs11.jar
    D:\netwideo\restws\out\production\restws
    D:\IDEA8\lib\javaee.jar
    D:\netwideo\restws\lib\mail-1.4.jar
    D:\netwideo\restws\lib\asm-3.1.jar
    D:\netwideo\restws\lib\wadl2java.jar
    D:\netwideo\restws\lib\jettison-1.0.1.jar
    D:\netwideo\restws\lib\grizzly-servlet-webserver-1.8.6.4.jar
    D:\netwideo\restws\lib\wadl-core.jar
    D:\netwideo\restws\lib\localizer.jar
    D:\netwideo\restws\lib\jdom-1.0.jar
    D:\netwideo\restws\lib\jsr311-api-1.0.jar
    D:\netwideo\restws\lib\stax-api-1.0-2.jar
    D:\netwideo\restws\lib\persistence-api-1.0.2.jar
    D:\netwideo\restws\lib\jaxb-api-2.1.jar
    D:\netwideo\restws\lib\wadl-cmdline.jar
    D:\netwideo\restws\lib\http-20070405.jar
    D:\netwideo\restws\lib\rome-0.9.jar
    D:\netwideo\restws\lib\activation-1.1.jar
    D:\netwideo\restws\lib\jaxb-impl-2.1.10.jar
    D:\netwideo\restws\lib\jersey-bundle-1.0.3.jar
    D:\netwideo\restws\lib\jackson-lgpl-0.9.4.jar
    D:\netwideo\restws\lib\FastInfoset-1.2.2.jar
    D:\netwideo\restws\lib\jaxb-xjc.jar
    D:\IDEA8\lib\idea_rt.jar
2009-11-18 17:25:46 com.sun.jersey.api.core.ClasspathResourceConfig init
信息: Root resource classes found:
    class example.HelloWorld
2009-11-18 17:25:46 com.sun.jersey.api.core.ClasspathResourceConfig init
信息: Provider classes found:
RESTful WebService服务已经启动
服务访问地址: http://192.168.14.117:9999/helloworld
 
可见,服务启动成功了,下来就是从浏览器中访问服务了,输入http://192.168.14.117:9999/helloworld,将发送一个HTTP GET请求,看看结果:
 
 
测试成功了!
 
--------------------
这个项目以来很多的包,有些事sun的,有些不是,这里我全放出来,整个项目放到附件中,在jdk5、6下运行都可以。
 
很遗憾,附件最大能上传6M的东西,这个超过6M了,只能等待51cto能放宽上传文件的大小。每个限制在10M以内最好了。----希望:),这里我列出所用的包吧:
activation-1.1.jar
asm-3.1.jar
FastInfoset-1.2.2.jar
grizzly-servlet-webserver-1.8.6.4.jar
http-20070405.jar
jackson-lgpl-0.9.4.jar
jaxb-api-2.1.jar
jaxb-impl-2.1.10.jar
jaxb-xjc.jar
jdom-1.0.jar
jersey-bundle-1.0.3.jar
jettison-1.0.1.jar
jsr311-api-1.0.jar
mail-1.4.jar
localizer.jar
persistence-api-1.0.2.jar
rome-0.9.jar
stax-api-1.0-2.jar
wadl-core.jar
wadl-cmdline.jar
wadl2java.jar

restful webservice实战

上篇文章介绍了什么是restful风格的webservice,本片文章通过一个demo着重介绍如何发布一个restful风格的web service. 1.建立接口...
  • a1314517love
  • a1314517love
  • 2015年01月16日 18:02
  • 4253

RESTful WebService和web service的区别

RESTful 风格的 webservice 越来越流行了, sun 也推出了 RESTful WebService 的官方规范: JAX-RS ,全称: Java API for RESTfu...
  • jaryle
  • jaryle
  • 2016年08月07日 08:39
  • 8385

RestFul(一)WebService之CXF的RestFul风格开发

CXF发布RSETful 风格WebService  1、关于RestFul的介绍 简介 REST也就是Representational State Transfer。REST并不特指一种技术,...
  • yangwangxlk
  • yangwangxlk
  • 2015年03月31日 11:45
  • 4689

WebService为什么不如RESTful API流行

1 WebService有很多协议,为什么HTTP比较流行? WebService是个很重型的规范,它的应用协议是SOAP(简单对象访问协议),它所依赖的下层通信方式不单单是HTTP,也有SOA...
  • baolin811
  • baolin811
  • 2015年08月20日 23:27
  • 7568

一起代码,两分钟,实现 java restful webservice

新接手个项目中用到了restful webservice, 开始研究JAX-RX,JAX-WS,CXF,jaxb等概念,也从网上找一些简单的例子,其实java实现rest还是非常简单的(要不怎么叫re...
  • gaowenhui2008
  • gaowenhui2008
  • 2015年11月17日 18:38
  • 1224

RestFul WebService的创建和使用实例

一. RestFul WebService的创建: 本例使用SpringMVC来写RestFul Web Service。 1.创建【Dynamic Web Prject】 2.添加代码: Res...
  • sunroyi666
  • sunroyi666
  • 2016年07月15日 16:05
  • 22127

Restful WebService简单介绍

RESTful Web Services已经渐渐开始流行, 主要是用于解决异构系统之间的通信问题。很多网站和应用提供的API,都是基于RESTful风格的Web Services,比较就有Google...
  • dandanzmc
  • dandanzmc
  • 2015年06月27日 19:38
  • 2042

Web Service进阶(七)浅谈SOAP Webservice和RESTful Webservice

浅谈SOAP Webservice和RESTful Webservice      REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸...
  • sunhuaqiang1
  • sunhuaqiang1
  • 2016年07月04日 15:19
  • 45606

浅谈restful webservice SOAP webservice

为了说明这个问题,必须的纠正一下我们对HTTP的认识。 首先回顾一下OSI七层模型 OSI(Open System Interconnection,开放系统互连)七层模型 7 应用层  6...
  • guiguzi629
  • guiguzi629
  • 2012年07月12日 17:28
  • 4244

RESTful Web Service 的安全(token 认证方式)以及性能

可扩展性(scalability)和可用性(availability)  custom token authentication 使用一个独一无二的标志,来标示每一次的数据请求。 这个标志有两种...
  • yinxianluo
  • yinxianluo
  • 2013年11月19日 21:59
  • 7782
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RESTful WebService入门
举报原因:
原因补充:

(最多只允许输入30个字)