【webservice】spring整合webservice RS风格

UserService

package cn.zxl.cxf.service;import java.util.List;import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;import cn.zxl.cxf.domain.User;@Path("/userService")
@Produces("*/*")
public interface IUserService {@POST@Path("/user")@Consumes({ "application/xml", "application/json" })public void saveUser(User user);@PUT@Path("/user")@Consumes({ "application/xml", "application/json" })public void updateUser(User user);@GET@Path("/user")@Produces({ "application/xml", "application/json" })public List<User> findAllUsers();@GET@Path("/user/{id}")@Consumes("application/xml")@Produces({ "application/xml", "application/json" })public User finUserById(@PathParam("id") Integer id);@DELETE@Path("/user/{id}")@Consumes("application/xml")public void deleteUser(@PathParam("id") Integer id);
}

UserServiceImpl

package cn.zxl.cxf.service;
import java.util.ArrayList;
import java.util.List;
import cn.zxl.cxf.domain.Car;
import cn.zxl.cxf.domain.User;public class UserServiceImpl implements IUserService {public void saveUser(User user) {System.out.println("save user:" + user);}public void updateUser(User user) {System.out.println("update user:" + user);}public List<User> findAllUsers() {List<User> users = new ArrayList<User>();User user1 = new User();user1.setId(1);user1.setUsername("小明");user1.setCity("北京");List<Car> carList1 = new ArrayList<Car>();Car car1 = new Car();car1.setId(101);car1.setCarName("保时捷");car1.setPrice(1000000d);carList1.add(car1);Car car2 = new Car();car2.setId(102);car2.setCarName("宝马");car2.setPrice(400000d);carList1.add(car2);user1.setCars(carList1);users.add(user1);User user2 = new User();user2.setId(2);user2.setUsername("小丽");user2.setCity("上海");users.add(user2);return users;}public User finUserById(Integer id) {if (id == 1) {User user1 = new User();user1.setId(1);user1.setUsername("小明");user1.setCity("北京");return user1;}return null;}public void deleteUser(Integer id) {System.out.println("delete user id :" + id);}}

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:jaxrs="http://cxf.apache.org/jaxrs"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"><!-- address 发布服务地址 servicesBeans 服务实现类 --><jaxrs:server id="userService" address="/userService" ><jaxrs:serviceBeans><bean class="cn.zxl.cxf.service.UserServiceImpl" /></jaxrs:serviceBeans><jaxrs:inInterceptors><bean class="org.apache.cxf.interceptor.LoggingInInterceptor" /></jaxrs:inInterceptors><jaxrs:outInterceptors><bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" /></jaxrs:outInterceptors></jaxrs:server></beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><!-- spring配置文件位置 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- spring核心监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>CXFService</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>CXFService</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list></web-app>

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.itcast.maven</groupId><artifactId>cxf_rs_spring</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>cxf_rs_spring</name><description>CXF的rs服务发布与spring整合</description><dependencies><!-- cxf 进行rs开发 必须导入  --><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxrs</artifactId><version>3.0.1</version></dependency><!-- 日志引入  --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.12</version></dependency><!-- 客户端 --><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-rs-client</artifactId><version>3.0.1</version></dependency><!-- 扩展json提供者 --><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-rs-extension-providers</artifactId><version>3.0.1</version></dependency><!-- 转换json工具包,被extension providers 依赖 --><dependency><groupId>org.codehaus.jettison</groupId><artifactId>jettison</artifactId><version>1.3.7</version></dependency><!-- spring 核心 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.7.RELEASE</version></dependency><!-- spring web集成 --><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.1.7.RELEASE</version></dependency><!-- spring 整合junit  --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.1.7.RELEASE</version></dependency><!-- junit 开发包 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies><build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>tomcat-maven-plugin</artifactId><version>1.1</version><configuration><port>9996</port></configuration></plugin></plugins></build>
</project>

domain:
car

package cn.zxl.cxf.domain;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name = "Car")
public class Car {private Integer id;private String carName;private Double price;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getCarName() {return carName;}public void setCarName(String carName) {this.carName = carName;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}@Overridepublic String toString() {return "Car [id=" + id + ", carName=" + carName + ", price=" + price + "]";}}

domain:
user

package cn.zxl.cxf.domain;import java.util.ArrayList;
import java.util.List;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name = "User")
public class User {private Integer id;private String username;private String city;private List<Car> cars = new ArrayList<Car>();public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public List<Car> getCars() {return cars;}public void setCars(List<Car> cars) {this.cars = cars;}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", city=" + city + ", cars=" + cars + "]";}}

【webservice】spring整合webservice RS风格相关推荐

  1. spring整合webservice

    主要讲解点: WebServiceCXF介绍(了解) JAX-WS服务独立发布及测试.JAX-WS整合spring开发及测试(了解) JAX-RS服务独立发布及测试.JAX-RS整合spring开发及 ...

  2. webservice之helloword(web)rs

    spring整合webservice 1.pom.xml文件 <dependencies><!-- cxf 进行rs开发 必须导入 --><dependency>& ...

  3. Spring整合CXF,发布RSETful 风格WebService

    这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述了.如果你对Spring整合CXF ...

  4. Spring项目整合WebService服务遇到问题记录

    项目是用SSM+Maven构建,在整合WebService时,将遇到问题解决方式记录如下: 基于WS风格使用方式 1.所需要类库:     <dependency>         < ...

  5. CXF整合Spring开发WebService

    刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下: 要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步: 1.打开 ...

  6. Spring整合CXF webservice restful 实例

    webservice restful接口跟soap协议的接口实现大同小异,只是在提供服务的类/接口的注解上存在差异,具体看下面的代码,然后自己对比下就可以了. 用到的基础类 User.java [源码 ...

  7. java cxf spring_CXF整合Spring开发WebService

    刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下: 要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步: 1.打开 ...

  8. SSM项目中整合WebService

    先了解一下WebService的一些相关术语吧: WebService: WebService是一种跨编程语言和跨操作系统平台的远程调用技术. WSDL(web service definition ...

  9. 一个CXF集成SPRING的WEBSERVICE完整实例

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1 首先 ...

最新文章

  1. iOS高级面试之NSNotificationCenter是同步操作还是异步操作
  2. HTML导航页面结构
  3. Redis高级特性及优化
  4. Angular Injector.create的工作原理
  5. XML文件中url路径中失效解决办法
  6. delphi 串口通信发送_关于串口通信232、485、422和常见问题,就没见过能讲这么清楚的...
  7. 架构设计 | 基于Seata中间件,微服务模式下事务管理
  8. 国内最强算法推荐系统,百度第二,它排第一!
  9. C++中XMLHTTPRequest异步使用onreadystatuschange
  10. 如何在sql存储过程中打log_教你如何记录Entity Framework框架自动生成的SQL语句
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的记账管理系统
  12. HTML 5适合小公司,适合在大平台上做内容
  13. 产品结构bom设计 mongodb_产品设计人员看过来!儿童智能机器人产品结构设计解析(二)...
  14. 88.合并两个有序数组(力扣leetcode)博主可答疑该问题
  15. Fortran入门教程(十)——结构体
  16. 华北水利水电大学历年c语言试题,一百题C语言试题
  17. 【吐血整理】Python 常用模块(二):json 模块
  18. 搭建Prometheus监控报警系统
  19. 银行计算机安全工作会议记录,商丘市一高召开2020年度网络安全信息化专题会议...
  20. Eclipse 开发Hadoop2.7.1可能会遇到的问题

热门文章

  1. DeepLearning based on PaddlePaddle系列二
  2. 一文看尽 CVPR2022 最新 22 篇论文(附打包下载)
  3. 开源项目|基于darknet实现量化感知训练,已实现yolov3-tiny所有算子
  4. 除了专业的代码书籍,这8本书,或许对你也有用!
  5. 不同测试阶段,不同测试类型的区别于联系
  6. Go 定时器内部实现原理剖析
  7. MySQL锁机制和PHP锁机制
  8. 理解UIView的绘制
  9. 【Python3】Python模块与包的导入
  10. [转]一张图理解prototype、proto和constructor的三角关系