`
leiwuluan
  • 浏览: 707084 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

JAX-RS cxf web服务 rest简单增删改查 集成spring webService

 
阅读更多

没时间什么也不多说了。所有的话都在代码里。

 

 

 

一、第一步,首先下载cxf 开发文档

     官方地址:http://cxf.apache.org/download.html 去下载一个最新了。

 

二、本地解压,里面有一个lib。建一个web项目把 jar 拷进去,就开始开工了。


 

三、打开web.xml 加入服务启动置配

 

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/beans.xml</param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>

    <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>
            org.apache.cxf.transport.servlet.CXFServlet
    </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

 

 

四、在WEB-INF/beans.xml spring文件

 

 

<?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: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.xsd
    http://cxf.apache.org/jaxrs
    http://cxf.apache.org/schemas/jaxrs.xsd">

    <import resource="classpath:META-INF/cxf/cxf.xml" />
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />


    <jaxrs:server id="studentServiceRs" address="/studentService">
        <jaxrs:extensionMappings>
            <entry key="json" value="application/json" />
            <entry key="xml" value="application/xml" />
        </jaxrs:extensionMappings>
        <jaxrs:serviceBeans>
            <ref bean="studentService" />
        </jaxrs:serviceBeans>
        <jaxrs:inInterceptors>
            <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
        </jaxrs:inInterceptors>
        <jaxrs:outInterceptors>
            <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
        </jaxrs:outInterceptors>
    </jaxrs:server>

    <bean id="studentService" class="com.student.web.service.impl.StudentServiceImpl" />

</beans>

 

 

五、创建你的dto  ResultDt.java

package com.student.web.dto;

import java.util.List;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "root")
public class ResultDto {
    public Integer totalCount;//总记录数
    public Integer totalPage;//总页数
    public List<StudentDto> students;//学生列表
    public String returncode;//反回状态码
}

 

 

 

StudentDto.java

package com.student.web.dto;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="Student")
public class StudentDto {
    private Long id;
    private String name;
    private Integer age;
    private Long scroe;
    private String address;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public Long getScroe() {
        return scroe;
    }
    public void setScroe(Long scroe) {
        this.scroe = scroe;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

 

 

六、创建你的service 服务接口和实现类

 

IStudentService.java

 

package com.student.web.service;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;

import com.student.web.dto.ResultDto;
import com.student.web.dto.StudentDto;

@Path(value="/")
public interface IStudentService {
   
    /**
     * 获取一页学生列表
     * @param page
     * @param limit
     * @return
     */
    @GET
    @Path(value="/getStudentPage/{page}/{limit}")
    ResultDto getStudentPage(@PathParam("page") int page,@PathParam("limit") int limit);
   
    /**
     * 得到一个学生
     * @param id
     * @return
     */
    @GET
    @Path(value="/getStudentById/{id}")
    ResultDto getStudentById(@PathParam("id") long id);
   
    /**
     * 删除一个学生
     * @param id
     * @return
     */
    @GET
    @Path(value="/deleteDeleteStudentById/{id}")
    ResultDto deleteDeleteStudentById(@PathParam("id") long id);
   
    /**
     * 添加一个学生
     * @param student
     * @return
     */
    @GET
    @Path(value="/addStudent/{name}/{age}/{scroe}/{address}")
    ResultDto addStudent(@PathParam("")StudentDto student);
}

 

 

StudentServiceImpl.java

 

package com.student.web.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.student.web.dto.ResultDto;
import com.student.web.dto.StudentDto;
import com.student.web.service.IStudentService;

public class StudentServiceImpl implements IStudentService {

    @Override
    public ResultDto getStudentPage(int page, int limit) {
        ResultDto result = new ResultDto();
       
        List<StudentDto> students=new ArrayList<StudentDto>();
        StudentDto s1=new StudentDto();
        s1.setId(1l);
        s1.setName("leiwuluan");
        s1.setAddress("北京市东城区");
        s1.setAge(22);
        s1.setScroe(100l);
        students.add(s1);
       
        s1=new StudentDto();
        s1.setId(1l);
        s1.setName("leiwuluan");
        s1.setAddress("北京市东城区");
        s1.setAge(22);
        s1.setScroe(100l);
        students.add(s1);
       
        s1=new StudentDto();
        s1.setId(1l);
        s1.setName("leiwuluan");
        s1.setAddress("北京市东城区");
        s1.setAge(22);
        s1.setScroe(100l);
        students.add(s1);
       
        s1=new StudentDto();
        s1.setId(1l);
        s1.setName("leiwuluan");
        s1.setAddress("北京市东城区");
        s1.setAge(22);
        s1.setScroe(100l);
        students.add(s1);
       
        s1=new StudentDto();
        s1.setId(1l);
        s1.setName("leiwuluan");
        s1.setAddress("北京市东城区");
        s1.setAge(22);
        s1.setScroe(100l);
        students.add(s1);
       
        s1=new StudentDto();
        s1.setId(1l);
        s1.setName("leiwuluan");
        s1.setAddress("北京市东城区");
        s1.setAge(22);
        s1.setScroe(100l);
        students.add(s1);
       
        result.students=students;
        result.totalCount=100;
        result.totalPage=12;
        result.returncode="success";
        return result;
    }

    @Override
    public ResultDto getStudentById(long id) {
        ResultDto result = new ResultDto();
        List<StudentDto> students=new ArrayList<StudentDto>();
        StudentDto s1=new StudentDto();
        s1.setId(1l);
        s1.setName("leiwuluan");
        s1.setAddress("北京市东城区");
        s1.setAge(22);
        s1.setScroe(100l);
        students.add(s1);
       
        result.students=students;
        result.returncode="success";
        return result;
    }

    @Override
    public ResultDto deleteDeleteStudentById(long id) {
        ResultDto result = new ResultDto();
        result.returncode="success";
        return result;
    }

    @Override
    public ResultDto addStudent(StudentDto student) {
        ResultDto result = new ResultDto();
        System.out.println("Address:"+student.getAddress()+",Name:"+student.getName()+",ID:"+student.getId());
        result.returncode="success";
        return result;
    }
}

 

 

七、启动服务

 

用浏览器访问:http://localhost:8080/Student_RS/rest/studentService/getStudentPage/1/3.xml

 

显示结果如下:


 

 

上面只是一个简单了rest 服务。

 

如果有兴趣,或刚入门可以看看 李海峰 :《JAVA的WebService支持.pdf》

 

 

dome项目 Student_RS.rar

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 31.7 KB
  • 大小: 41.4 KB
2
0
分享到:
评论
1 楼 wangzhe_real 2014-10-29  
对于刚接触的我是一个很详细的教程,太感谢了

相关推荐

    java_webservice_JAX-RS.zip_cxf_jax_jax-rs_spring cxf

    Java Web服务,特别是JAX-RS(Java API for RESTful Web Services)和Apache CXF,是企业级应用程序中实现服务接口的重要技术。本教程将深入探讨如何在SSH(Spring、Struts、Hibernate)架构中集成Web服务,以及如何...

    webservice-cxf-spring-jar.zip

    【标题】"webservice-cxf-spring-jar.zip" 是一个包含了使用Apache CXF与Spring框架集成开发Web服务的Java库集合。这个压缩包提供了一整套必要的JAR文件,以便于开发者在他们的项目中快速搭建和运行基于CXF的Web服务...

    Webservice-CXF实用手册学习大全

    - JAX-RS:JAX-RS(Java API for RESTful Web Services)是用于开发REST(Representational State Transfer)风格的WebService规范,适合于基于HTTP的方法进行操作。 3. CXF框架集成: - Apache CXF是一个开源...

    webservice apache-cxf-3.0.7 jar包

    - `cxf-rt-frontend-jaxrs.jar`:JAX-RS前端模块,用于RESTful服务的开发。 - `cxf-rt-transports-http.jar`和`cxf-rt-transports-http-hc.jar`:HTTP和HTTP客户端传输模块。 - `cxf-rt-ws-security.jar`:WS-...

    spring cxf rest demo

    【Spring CXF REST Demo】项目是一个使用Maven构建的Java应用程序,它展示了如何将Spring框架与Apache CXF集成,以创建RESTful风格的服务。在这个项目中,开发者可以学习到如何利用CXF作为服务端的REST服务提供者,...

    webservice-cxf-2.3.5

    总之,Apache CXF 2.3.5 版本是一个强大的 Web 服务框架,提供了广泛的 SOAP 和 REST 支持,以及丰富的数据绑定、安全和集成选项。通过这个版本,开发者可以构建健壮、可扩展的网络服务,实现不同系统间的无缝通信。

    cxf+spring发布webservice和restservice

    CXF同样支持REST服务的开发,你可以使用JAX-RS(Java API for RESTful Web Services)规范来实现。例如,通过使用@Path、@GET、@POST等注解,你可以指定资源路径、HTTP方法以及处理这些请求的方法。 为了将CXF与...

    JAVA的WebService支持-CXF

    它不仅支持JAX-WS规范,还支持JAX-RS(Java API for RESTful Web Services),这使其能够同时满足传统SOAP服务和现代RESTful服务的需求。 CXF的核心组件是`org.apache.cxf.Bus`,它类似Spring的`ApplicationContext...

    cxf+spring=webservice CXF 应用开发

    3. **Spring与CXF集成**:通过Spring的`&lt;jaxws:endpoint&gt;`或`&lt;jaxrs:server&gt;`标签,我们可以将CXF服务端点声明式地配置在Spring XML配置文件中,从而实现服务的发布。这种方式避免了手动编写CXF的配置文件,使得配置...

    cxf集成Spring的restful WebService接口

    在IT行业中,CXF是一个广泛使用的开源框架,用于构建和开发Web服务。它不仅支持SOAP协议,还支持RESTful风格的API。而Spring框架则是一个全面的企业级应用开发框架,两者结合可以创建强大的、灵活的Java应用程序。本...

    使用CXF发布Rest服务

    【标题】:使用CXF发布REST服务 在Java开发中,Apache CXF是一个广泛使用的开源框架,用于构建和部署Web服务。本教程将详细介绍如何利用CXF 2.3.3版本来发布RESTful服务,并在客户端进行调用。首先,我们需要理解...

    最新apache-cxf-3.2.7

    - 通过Spring的`&lt;jaxws:endpoint&gt;`或`&lt;jaxrs:server&gt;`标签可以方便地声明CXF服务。 6. **调试与日志**: CXF提供了丰富的日志信息,通过配置log4j或logback,可以帮助开发者跟踪服务运行状态和错误。 总结来说,...

    CXF WebService整合Spring的简单实现

    CXF提供了两种主要的Web服务实现方式:JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)。JAX-WS主要用于构建传统的SOAP(Simple Object Access Protocol)服务,而JAX-RS则...

    JAVA的WebService支持CXF与SAAJ第三版

    本教程旨在深入探讨如何使用CXF框架开发WebService,同时涵盖了多种与WebService相关的技术规范,包括但不限于JAX-WS、JAX-RS、JAX-RPC、JAXM、SAAJ以及MTOM等。通过本教程的学习,读者不仅能够了解这些技术的基本...

    cxf+spring webservice server demo

    3. **集成CXF和Spring**:在Spring中集成CXF,通常会使用Spring的`&lt;jaxws:service&gt;`或`&lt;jaxrs:server&gt;`标签来声明和配置Web服务。这样,服务实例的创建和管理都交给了Spring容器,同时还能利用Spring的其他功能,如...

    Spring整合CXF,发布RSETful 风格WebService

    在本文中,我们将探讨如何将Spring与Apache CXF框架整合,以发布RESTful风格的Web服务。RESTful Web服务是一种轻量级的架构风格,它基于HTTP协议,使用URI(Uniform Resource Identifier)来定位资源,通过HTTP方法...

    spring整合CXF开发webService所需jar包

    当我们将两者结合时,可以利用Spring的管理能力来轻松地集成和部署CXF Web服务。下面将详细阐述如何在Spring环境中整合CXF开发Web Service,并介绍所需的关键jar包。 首先,我们需要理解Spring与CXF整合的基础。...

    CXF使用手册

    JAX-RS则是针对REST风格Web服务的规范,它的推出较晚,但为RESTful架构提供了丰富的API支持。JAX-RS的API位于javax.ws.rs.*包,需要从JCP单独下载。Apache CXF提供了这两种规范的实现,CXF的中心组件是Bus,它类似于...

    CXF2+Spring2.5开发WebService实例

    Apache CXF是一个用于构建和部署Web服务的框架,支持多种协议,如SOAP、REST、XML/HTTP和JAX-RS。CXF提供了多种工具和服务,包括WSDL(Web服务描述语言)到Java代码的生成、客户端和服务器端的Stubs、以及WS-...

Global site tag (gtag.js) - Google Analytics