采用CXF+spring+restful创建一个web接口项目

这篇文章是http://blog.csdn.net/zxnlmj/article/details/28880303下面,加入的基础上的restful特征

1、参加restful必jar包裹

jsr311-api-1.0.jar
CXF与JAX-RS版本号相应问题,參考自:http://bioubiou.iteye.com/blog/1866871
CXF支持REST风格的Web服务:JAX-RS2.0(JSR-339)和JAX-RS1.1(JSR-311)的Java API。
CXF2.7.0支持JAX-RS2.0(不包含clientAPI如今 - 引入的新功能。但注意CXFclientAPI已经更新,支持新的过滤器,拦截器,异常类和响应API,再加上client的异步调用API)。

CXF2.6.x版本号,在2.5.x。2.4.x和2.3.x的支持JSR-311 API1.1和JAX-RS1.1 TCK符合。

CXF2.2.x的支持JSR-311 API1.0和JAX-RS1.0 TCK标准。 CXF的2.1.x支持JSR-311 API0.8。

本文选择cxf-2.4.2.jar与jsr311-api-1.0.jar

2、开发restful服务

新建RestfulRegeditService.java接口

package zxn.ws.service;import java.io.IOException;import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;@Path(value = "/")
public interface RestfulRegeditService {@POST@Path("/regedit")@Consumes(MediaType.APPLICATION_JSON)public String regedit(String username, String password) throws IOException;}
新建RestfulRegeditServiceImpl.java接口
package zxn.ws.service.impl;import java.io.IOException;import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.UriInfo;import zxn.ws.service.RestfulRegeditService;@Path(value = "/")
public class RestfulRegeditServiceImpl implements RestfulRegeditService {@Contextprivate UriInfo uriInfo;@Contextprivate Request request;@POST@Path("/regedit")@Produces(MediaType.APPLICATION_JSON)public String regedit(String username, String password) throws IOException {return "";} 
}

3、改动spring配置文件applicationContext.xml(粗体部分为需加入的)

<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/b<span style="background-color: rgb(255, 255, 0);">eans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc</span>e" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/aop
                        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.0.xsd
                        http://www.springframework.org/schema/tx
                        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
                        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd ">
    <import resource="classpath:META-INF/cxf/cxf.xml" />
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

    <!-- webservice配置 ,myeclipse检測到此处有错没影响-->
    <jaxws:endpoint id="regeditService" implementor="zxn.ws.service.RegeditServiceImpl" address="/Regedit" />

<bean id="restfulRegeditService" class="zxn.ws.service.impl.RestfulRegeditServiceImpl" />
<!--restful服务 -->
    <jaxrs:server id="restServiceContainer" address="/regedit">
        <jaxrs:serviceBeans>
            <ref bean="restfulRegeditService" />
        </jaxrs:serviceBeans>
        <jaxrs:extensionMappings>
            <entry key="json" value="application/json" />
            <entry key="xml" value="application/xml" />
        </jaxrs:extensionMappings>
        <jaxrs:languageMappings>
            <entry key="en" value="en-gb" />
        </jaxrs:languageMappings>
    </jaxrs:server></strong>
</beans>

4、部署到tomcat,执行。成功。界面下图:

5、源码地址下载:http://download.csdn.net/detail/zxnlmj/7458403

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/blfshiye/p/4942280.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机结构介绍,计算机系统结构介绍.pdf

第三次作业5.7 一条线性流水线由4 个功能段组成&#xff0c;每个功能段的延迟时间都相等&#xff0c;都为 。开始5t个 &#xff0c;每间隔一个 向流水线输入一个任务&#xff0c;然后停顿2 个 &#xff0c;如此重复。求流水t t t线的实际吞吐率、加速比和效率。(10 分)…

古风一棵桃花树简笔画_为什么,很多农村家庭的院子里,会喜欢种一棵樱桃树呢?...

小伙伴们去农村的时候&#xff0c;应该都会注意到几乎每家每户的院子里都会种有几棵树吧。如果小伙伴们认真观察的话&#xff0c;你们可以发现很多农村家庭的院子里都有种一两棵樱桃树。那么这是为什么呢&#xff1f;是因为樱桃比较好吃吗&#xff1f;是有这个原因的&#xff0…

Python【02】【基础部分】- B

1、作用域 变量只要在内存存在&#xff0c;就可以被使用 。&#xff08;栈&#xff09; 1 if 1 1: 2 name kim 3 print name 个例&#xff1a;item的值为字典循环后最后一个key的值 1 name {xiaoming:12,xiaohua:15,xiaoli:11} 2 for item in name: 3 print item 4 …

计算机用语优秀怎么算,计算机专业用语

computer-hardware~计算机硬件motherboard~主板cpu(central~processor~unit)-中央处理器memory-存储器&#xff0c;内存条monitor~显示器mouse~鼠标keyboard~键盘peripheral-外部设备printer~打印机scanner~扫描仪speaker~音响RAM(Random access memory)随机存储器hard~disk 硬…

冯诺依曼机器人_冯·诺依曼型计算机的五大组成部分是什么?

在DSP算法中&#xff0c;最大量的工作之一是与存储器交换信息&#xff0c;这其中包括作为输入信号的采样数据、滤波器系数和程序指令。例如&#xff0c;如果将保存在存储器中的2个数相乘&#xff0c;就需要从存储器中取3个二进制数&#xff0c;即2个要乘的数和1个描述如何去做的…

(转)数字格式化函数:Highcharts.numberFormat()

一、函数说明 该函数用于图表中数值的格式化&#xff0c;常见用途有数值精度控制、小数点符、千位符显示控制等。二、函数使用1、函数构造及参数Highcharts.numberFormat (Number number, [Number decimals], [String decimalPoint], [String thousandsSep])参数列表number 需…

usb3.0 ssd 测试软件,SSD打造的移动硬盘,顺便测下USB2.0、USB3.0、SATA2.0、SATA3.0传输速度...

本帖最后由 神经病的春天 于 2014-9-18 15:36 编辑近来升级了一下主机&#xff0c;这样一来&#xff0c;终于能够拥有USB3.0和SATA3.0接口了&#xff0c;不过本人目前还木有SSD&#xff0c;所以尚无法完全发挥出这些接口的速度优势。 为了测试&#xff0c;上周的时候&#xff0…

cad图层管理插件_设计大神CAD常用七个插件你会用几个?

如果你需要这些CAD插件&#xff0c;可以私信我&#xff0c;小编会及时发给大家​​ 说道CAD插件可能会被人们熟知的也就那几个&#xff0c;可是据统计CAD插件多达上百个&#xff0c;那么在这上百个插件中你又会用几个呢&#xff1f;下面就让我们看看大部分设计师常用的插件有哪…

笔记本显示器仅计算机,别只玩性能 笔记本屏幕怎么进化才靠谱?

1分辨率升级2K不合适一直以来&#xff0c;屏幕显示效果都是笔记本电脑的弱项。近几年笔记本电脑的变化更多是性能以及外观设计的变迁。诸如游戏本以及超极本等产品&#xff0c;在屏幕的优化上&#xff0c;表现都是差强人意。很多人手中的笔记本都是TN屏幕的产品&#xff0c;在显…

PHP - 图像处理

第14章 处理图像 学习要点&#xff1a; 1.创建图像 2.简单小案例 在PHP5中&#xff0c;动态图象的处理要比以前容易得多。PHP5在php.ini文件中包含了GD扩展包&#xff0c;只需去掉GD扩展包的相应注释就可以正常使用了。PHP5包含的GD库正是升级的GD2库&#xff0c;其中包含支持真…

计算机专业刚毕业本科生,计算机专业应届本科毕业生自我鉴定

计算机专业应届本科毕业生自我鉴定四年的大学生活是我人生这条线上的一小段&#xff0c;是闪闪发光的一段&#xff0c;它包含了汗水和收获&#xff0c;为我划平人生的线起着至关重要的作用。四年大学生活已接近尾声&#xff0c;感觉非常有必要总结一下大学四年的得失&#xff0…

佳能c3320怎么设置接收方_入门级单反相机佳能800D是否值得买?在我看来价格决定一切...

佳能入门级单反相机800D是否值得买看了就清楚旺灵龙如果你是一位刚刚准备购买数码单反相机的入门小白&#xff0c;佳能最新的EOS 800D的肯定是你现在最容易拿来对比的选择。新相机在性能与操作便利性方面的良好结合&#xff0c;无疑将是入门级单反性价比最高的一款机型。佳能(C…

Objective-c @property和@Synthesize

在Objective-c中&#xff0c;使用property来标识属性&#xff08;一般是实例变量&#xff09;。在实现文件中使用synthesize标识所声明的变量&#xff0c;让系统自动生成设置方法和获取方法。 也就是说property和synthesize配对使用&#xff0c;让系统自动生成设置方法和获取方…

文件上传控件 css,CSS3 自定义文件上传输入控件界面

CSS语言&#xff1a;CSSSCSS确定body{background: white;}.wrap {max-width: 60%;margin: 50px auto;}.file {position: relative;display: inline-block;cursor: pointer;height: 2.5rem;}.file input {min-width: 14rem;margin: 0;filter: alpha(opacity0);opacity: 0;}.file…

php接口返回一个数组怎末写_php api返回json数组

[PHP] 为JSON数据的API返回空数组或者空对象PHP 中&#xff0c;不管是 list 或者 dictionary 都使用一样的 [](或者 array()) 来定义。在使用 JSON 作为 API 数据 Content-Type 的时候&#xff0c;会有这样一个问题&#xff1a;如何返回一个空对象和一个空数组&#xff1f;使用…

stm8时钟源

下面4种时钟源可用做主时钟&#xff1a; 1-24MHz高速外部晶体振荡器(HSE)最大24MHz高速外部时钟信号(HSE user-ext)16MHz高速内部RC振荡器(HSI)128KHz低速内部RC(LSI)各个时钟源可单独打开或关闭&#xff0c;从而优化功耗。 (一)HSE 高速外部时钟信号可由下面两个时钟源产生&am…

nexus 仓库类型_Maven私服Nexus的搭建

私服存在的合理性Maven中的依赖是从服务器仓库中下载的&#xff0c;Maven的仓库只有两大类&#xff1a;本地仓库远程仓库&#xff0c;其中在远程仓库中又分成了3种&#xff1a;中央仓库 、私服、其它公共库。Maven用户直接连接远程仓库下载构件的做法是Maven不建议使用的&#…

用soapUI测试webservice

测试webservice时&#xff0c;有时需要写一个客户端来向服务端发起请求才可以测试服务&#xff0c;最近看到一款工具soap ui&#xff0c;也可以调试VS2010中的程序。 首先要把webservice 发布到本地&#xff0c;网上已经有发布本地的例子&#xff0c;这里就不细说了。发布之后&…

ae中心点重置工具_AE中图形绘制的6大技巧,简单易操作

AE中的图形系统和文字系统很相似&#xff0c;都有自己相对独立的一套基础动画系统。当我们打开AE软件&#xff0c;面对空白的面板&#xff0c;如何通过一步步的操作填充画面&#xff0c;做出酷炫的效果&#xff0c;这其中图形占据很大的比重&#xff0c;更不用说流行的MG动画&a…

360浏览器 ajax取缓存,web开发遇到的坑之360浏览器缓存问题

web开发遇到的坑之360浏览器缓存问题再使用360浏览器&#xff0c;浏览我自己开发的一个配置的web管理后台时&#xff0c;发现&#xff0c;使用ctrlF5都不能刷新表格的数据&#xff0c;还有&#xff0c;我添加字段时&#xff0c;明明是添加成功的&#xff0c;用sql再数据库查都能…