当前位置: 代码迷 >> Web前端 >> JAX-RS cxf web服务 rest容易增删改查 集成spring webService
  详细解决方案

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

热度:123   发布时间:2012-07-18 12:05:40.0
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

?

?

?

?

?

?

?

?

?

?

?

?

?

  相关解决方案