使用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(不包括客户端API现在 - 引入的新功能,但注意CXF客户端API已经更新,支持新的过滤器,拦截器,异常类和响应API,再加上客户端的异步调用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 {
    
    @Context
    private UriInfo uriInfo;
    
    @Context
    private 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,运行,成功,界面下图:

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

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

使用CXF+spring+restful创建一个web的接口项目,布布扣,bubuko.com

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

上一篇:Java经典习题(3)


下一篇:windows下python配置numpy、matplotlib、scipy