- 浏览: 399073 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tyjdzr:
程序已经运行成功,第一次接触webservice,楼主领我入门 ...
java实现webservice实例 -
guosongchao:
楼主介绍的确实简单,但是对于我这种对web service一点 ...
java实现webservice实例 -
gnail_oug:
...
java实现webservice实例 -
safedriver:
楼主真心不错
java实现webservice实例 -
Partys:
Partys 写道addArticleCategories(C ...
RESTful Web Services in Spring 3(上)
上一篇我主要发了RESTful Web Services in Spring 3的服务端代码,这里我准备写客户端的代码。
上篇得连接地址为:http://yangjizhong.iteye.com/blog/600540
开始本篇了:
注:附件里有源码,下载即可,依赖包请在spring网获得,谢谢。
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:oxm="http://www.springframework.org/schema/oxm" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd"> <context:component-scan base-package="com.informit.articleservice" /> <bean id="restTemplate" class="org.springframework.web.client.RestTemplate"> <property name="messageConverters"> <list> <!-- We only have one message converter for the RestTemplate, namely the XStream Marshller --> <bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"> <constructor-arg> <bean class="org.springframework.oxm.xstream.XStreamMarshaller"> <!-- Tell XStream to find the alias names in the following classes --> <property name="annotatedClasses"> <list> <value>com.informit.articleservice.model.Article</value> <value>com.informit.articleservice.model.Category</value> </list> </property> </bean> </constructor-arg> </bean> </list> </property> </bean> </beans>
applicationContext.xml声明了一个bean,名restTemplate,implemented by org.springframework.web.client.RestTemplate,RestTemplate 类提供了一个setter来声明message converters,在这个属性我们提供一个包含一个简单bean的list:a MarshallingHttpMessageConverter,这是你的实体信息声明的地方
restTemplate bean声明后,ArticleClient 使用了restTemplate来调取ArticleService:
package com.informit.articleservice.client; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; import com.informit.articleservice.model.Article; import com.informit.articleservice.model.Category; @Component("articleClient") public class ArticleClient { @Autowired protected RestTemplate restTemplate; private final static String articleServiceUrl = "http://localhost:8082/articleservice/"; @SuppressWarnings("unchecked") public List<Category> getCategories() { return restTemplate.getForObject(articleServiceUrl + "article", List.class); } public Article getArticle(String category, int id) { return restTemplate.getForObject(articleServiceUrl + "article/{category}/{id}", Article.class, category, id); } @SuppressWarnings("unchecked") public void delCategories() { restTemplate.delete(articleServiceUrl + "article"); } @SuppressWarnings("unchecked") public List<Category> postCategories() { Map<String, String> params = new HashMap<String, String>(); params.put("name", "jizhong"); return restTemplate.postForObject(articleServiceUrl + "addarticle/{name}", null, List.class, params); } }
在这里RestTemplate是自动加载的(auto-wired),你会注意到ArticleClient被加上了@Component annotation而且applicationContext.xml自动扫描com.informit.articleservice包或他的子包,因此当ArticleClient通过application context被loaded时,他会自动作为一个接口来实现RestTemplate实例
RestTemplate的相关使用的方法在文档中是这样写的:
delete(): deletes an object hosted by the web service
getForObject(): executes the HTTP GET command and returns the requested object
headForHeaders(): executes the HTTP HEAD command and returns the headers for the requested service
optionsForAllow(): executes the HTTP OPTIONS command and returns list of content types the the request service allows
postForLocation: executes the HTTP POST command and returns the location header value
postForObject(): executes the HTTP POST command and returns the object at the specified URL
put(): executes the HTTP PUT command and sends the specified object to the web service
execute(): provides fine grained control if one of the aforementioned methods does not suit your needs
接下来列出测试类:
package com.informit.resttemplateexample; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.informit.articleservice.client.ArticleClient; import com.informit.articleservice.model.Category; public class RestTemplateExample { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); ArticleClient articleClient = applicationContext.getBean("articleClient", ArticleClient.class); //get operate // Article article = articleClient.getArticle("fun", 1); // System.out.println("Article: " + article.getBody()); // // List<Category> categories = articleClient.getCategories(); // for (Category category : categories) { // System.out.println("Category: " + category); // } //delete operate //articleClient.delCategories(); //post operate List<Category> categories = articleClient.postCategories(); } }
好了,然后本地跑一下就可以了,当然前提是一定把服务端跑起来哦....
注:详细代码在附件,JAR包还是自己下哈,终于写完了,有点累,但是有收获。
- resttemplateexample_20100223.rar (13.2 KB)
- 下载次数: 662
发表评论
-
spring框架下配置lucene
2012-02-21 15:34 8621最近这的是投入不少精力在lucene身上,学到一点心得,留此文 ... -
Task Scheduling Simplifications in Spring 3.0
2011-05-19 14:47 2611简单说下基本配置: applicationContex ... -
安装ActiveMQ
2011-04-18 10:28 1229安装activeMQ前先升级jdk到6U24 cd /App ... -
ECLIPSE远程DEBUG
2011-04-18 10:07 1460在服务器上添加监听端 ... -
apache的commons-net实现FTP上传,下载文件
2011-04-15 11:25 2723不多说,上代码: package com.book.s ... -
tdd:测试驱动WEB组件
2011-04-05 21:37 1734相信大家有好多人会使用JUNIT进行单元测试了,但是在WEB开 ... -
利用GeneratedKeyHolder获得新建数据主键值
2010-12-24 14:37 7157有时候我们向DB新插入一条数据,都需要获取对应的主键值。在采用 ... -
dbunit解决XML数据中必须表首行有相应字段问题
2010-11-30 09:51 1726DbUnit设计理念: 熟悉单 ... -
jMock Cookbook 中文版
2010-04-29 10:06 2063他娘的,中文版啊!爽,坚决分享! 这里不多介绍JMOC ... -
linux下配置JDK,tomcat
2010-02-26 15:34 1033转自:http://blog.csdn.net/strivem ... -
hsqldb
2010-02-25 00:02 1265import java.sql.Connection; im ... -
RESTful Web Services in Spring 3(上)
2010-02-23 10:19 11309通过本文,我将介绍REST的特点,基本设计原则及其简单讲解,最 ... -
spring3实现MVC的rest
2010-02-07 15:21 8516首先配置WEB.XML: <?xml versi ... -
使用 Spring 2.5 基于注解驱动的 Spring MVC
2010-02-07 13:09 890来自地址:https://www.ibm. ... -
log4j配置
2010-01-28 14:07 1149<!-- logging begin--> ... -
java中org.apache.commons.digester类用法
2010-01-28 10:52 1510xml文件内容: <?xml version=& ... -
lucene的索引建立及查找
2010-01-27 11:03 1036package lucene; import org.a ... -
java实现webservice实例
2010-01-25 18:48 131830今天下午突然想研究下WEBSERVICE,从网上找了好多实例, ... -
Hibernate批量插入的方法
2010-01-22 14:46 1503Session session = sessionFact ... -
编写你的第一个Hibernate程序
2010-01-20 11:51 1212注:转载http://www.nit-pro.org/jszl ...
相关推荐
Building RESTful Web Services with Spring 5 – Second Edition: Leverage the power of Spring 5.0, Java SE 9, and Spring Boot 2.0 Find out how to implement the REST architecture to build resilient ...
Building RESTful Web Services with Spring 5(2nd) 英文epub 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除查看此书详细信息请在美国亚马逊官网搜索此书
### RESTful Java Web Services #### 一、RESTful Web服务概览 REST(Representational State Transfer)是一种软件架构风格,最初由Roy Fielding在他的博士论文中提出。它定义了一种简单且灵活的方法来创建分布式...
Building RESTful Web Services with Go:Initially, SOAP-based web services became more popular with XML. Then, since 2012,REST picked up the pace and gulped SOAP in whole. The rise of a new generation ...
使用 Spring 3 创建 RESTful Web Services RESTful Web Services 是一种基于 HTTP 和 REST 原理实现的 Web Service。使用 Spring 3,可以轻松地创建 Java 实现的服务器端 RESTful Web Services。本文将介绍使用 ...
**Spring 3 创建 RESTful Web Services 知识点详解** RESTful Web Services 是一种基于 Representational State Transfer(表述性状态转移)架构风格的 Web 应用设计模式,它强调资源的表述和状态转换,常用于构建...
Java RESTful Web Services是开发现代Web应用程序的一种常见方式,它基于Representational State Transfer(REST)架构原则,提供了轻量级、高效且易于使用的接口。在本文中,我们将深入探讨如何分三步轻松实现Java ...
### RESTful Java Web Services知识点概览 #### 一、RESTful架构原理与概念 - **REST(Representational State Transfer)**:一种网络应用程序的设计风格和开发方式,基于约束条件和原则,利用HTTP协议来实现...
结合RESTful、Maven和Spring,我们可以快速地搭建和维护高质量的Web Services。RESTful提供了清晰的接口设计,Maven简化了项目管理和构建流程,而Spring框架则提供了强大的后端功能支持。在实际开发中,还需要考虑...
Stream API- Reactive programming using RxJava 2 and Reactor- Spring WebFlux- Reactive support in Spring Data MongoDB and Spring Security- Developing reactive RESTful web services using Spring WebFlux...
7. **Spring与RESTful服务**:虽然Spring Web Services主要关注SOAP,但书中可能也会涉及如何将Spring与其他组件结合,以支持RESTful风格的Web服务。 8. **实例分析与最佳实践**:书中的每个章节都会配合具体的代码...
在Java中,我们常用JAX-RS(Java API for RESTful Web Services)来实现RESTful服务。JAX-RS为创建RESTful服务提供了便利的API,例如使用`@Path`注解定义资源路径,`@GET`、`@POST`等注解指定HTTP方法,以及`@...
2. REST和SOAP服务:Spring Web Services支持构建RESTful Web服务,同时也支持SOAP Web服务。读者将学习如何根据需要选择合适的通信协议,并实施相应的服务。 3. 安全性:在Web服务中,安全性是一个重要的方面。...
Cxf,另一方面,是一个开源的Web服务框架,它支持WS-*标准,可以创建和消费SOAP以及RESTful Web服务。 集成Spring和Cxf的步骤通常包括以下几个关键部分: 1. **配置Spring**:首先,我们需要创建一个Spring配置...
Java通过JAX-RS(Java API for RESTful Web Services)提供对RESTful服务的支持,使得开发者可以轻松创建和消费RESTful服务。 总的来说,Web Services平台架构在Java中的实现涉及多个层面:定义服务接口(WSDL)、...
在IT行业中,RESTful Web Service和Spring框架的集成是一个广泛使用的解决方案,特别是在构建现代、可扩展的分布式系统中。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于...
Spring是一个得到广泛应用的Java EE框架,它在版本3以后就增加了RESTful Web Services开发的支持。虽然,对REST的支持并不是JAX-RS的一种实现,但是它具有比标准定义更多的特性。REST支持被无缝整合到Spring的MVC...