ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

spring+webservice使用cxf框架搭建服务端和客户端

2022-01-15 15:34:42  阅读:173  来源: 互联网

标签:webservice spring springframework cxf apache public se schema


  WebService三要素:

  WebService的三要素是:

  SOAP (Simple Object Access Protocol):简易对象访问协议,soap用来描述传递信息的格式。

  WSDL (WebServices Description Language):Web服务描述语言,用来描述如何访问具体的接口。

  UDDI (Universal Description Discovery and Integration):通用描述、发现及整合,用来管理、分发、查询webService。

  1234

  XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。

  一 搭建服务端

  首先在pom中加入cxf的依赖

  org.apache.cxf

  cxf-rt-frontend-jaxws

  3.1.8

  org.apache.cxf

  cxf-rt-transports-http

  3.1.8

  12345678910

  然后编写需要暴露在外的程序接口:

  接口需要@webservice注解:

  package com.customer.web.ws;

  import java.util.List;

  import javax.jws.WebService;

  import com.customer.entitys;

  import com.customer.entity.Users;

  @WebService

  public interface IShopWS {

  /**

  * 查询未关联定区的店铺

  * @return

  */

  public List queryAllShopsByNotAssociate();

  /**

  * 查询指定定区关联的店铺

  * @param decidedzoneId

  * @return

  */

  public List queryAllShopsByAssociate(int decidedzoneId);

  /**

  * 修改指定定区关联的店铺

  * @param decidedzoneId

  * @param shopIds

  */

  public void updateShopsDecidedzoneId(int decidedzoneId, List shopIds);

  /**

  * 根据电话号码查询指定用户

  * @param phone

  * @return

  */

  public Users queryByPhone(String phone);

  }

  12345678910111213141516171819202222232425262728293031323334353637383940414243

  编写实现类

  @Service("shopWS")

  public class ShopWSImpl implements IShopWS{

  @Autowired

  private ShopsMapper shopMapper;

  @Autowired

  private UsersMapper userMapper;

  @Override

  public List queryAllShopsByNotAssociate() {

  ShopsExample se=new ShopsExample();

  Criteria c1=se.createCriteria().andShopRemarkIsNull();

  Criteria c2=se.createCriteria().andShopAddressEqualTo("");

  se.or(c1);

  se.or(c2);

  return shopMapper.selectByExample(se);

  }

  @Override

  public List queryAllShopsByAssociate(int decidedzoneId) {

  ShopsExample se=new ShopsExample();

  se.createCriteria().andShopRemarkEqualTo(decidedzoneId + "");

  return shopMapper.selectByExample(se);

  }

  @Override

  public void updateShopsDecidedzoneId(int decidedzoneId, List shopIds) {

  List slist=queryAllShopsByAssociate(decidedzoneId);

  for (Shops shop : slist) {

  shop.setShopRemark(null);

  shopMapper.updateByPrimaryKey(shop);

  }

  if(shopIds !=null) {

  for (int i=0; i < shopIds.size(); i++) {

  Shops s=new Shops();

  s.setShopId(shopIds.get(i));

  s.setShopRemark(decidedzoneId + "");

  shopMapper.updateByPrimaryKeySelective(s);

  }

  }

  }

  @Override

  public Users queryByPhone(String phone) {

  UsersExample ue=new UsersExample();

  ue.createCriteria().andUsersTelephoneEqualTo(phone);

  List list=userMapper.selectByExample(ue);

  return list !=null && list.size() > 0 ? list.get(0) : null;

  }

  }

  123456789101112131415161718192022222324252627282930313233343536373839404142434445464748495051525354

  配置文件spring-cxf(需要添加到spring管理)

  xmlns:xsi="w3/2001/XMLSchema-instance"

  xmlns:jaxws="cxf.apache/jaxws"

  xsi:schemaLocation="

  springframework/schema/beans

  springframework/schema/beans/spring-beans.xsd

  cxf.apache/jaxws cxf.apache/schemas/jaxws.xsd">

  //address访问服务端的地址

  1234567891011121314151617

  web.xml需要加入以下配置:

  cxf

  org.apache.cxf.transport.servlet.CXFServlet

  cxf

  /service/*

  现在服务端编写完成:

  访问的方式:ip地址/service/shops?wsdl

  二,编写客户端

  通过cmd中输入:wsimport -s . ip地址/service/shops?wsdl可以获得服务端所暴露的接口,将所需要的接口放入客户端中就可以调用了。

  1.同样需要cxf的pom依赖

  2.编写spring-cxf.xml

  xmlns:xsi="w3/2001/XMLSchema-instance"

  xmlns:p="springframework/schema/p"

  xmlns:aop="springframework/schema/aop"

  xmlns:tx="springframework/schema/tx"

  xmlns:jaxws="cxf.apache/jaxws"

  xmlns:soap="cxf.apache/bindings/soap"

  xmlns:context="springframework/schema/context"

  xsi:schemaLocation="springframework/schema/beans

  springframework/schema/beans/spring-beans.xsd

  springframework/schema/aop

  springframework/schema/aop/spring-aop.xsd

  springframework/schema/tx

  springframework/schema/tx/spring-tx.xsd

  springframework/schema/context

  springframework/schema/context/spring-context.xsd

  cxf.apache/bindings/soap

  cxf.apache/schemas/configuration/soap.xsd

  cxf.apache/jaxws

  cxf.apache/schemas/jaxws.xsd">

  serviceClass="com.lbx.dms.webservice.IShopWS"

  address="ip地址/service/shops">

  12345678910111213141516171819202222232425262728

  一个完整的webservice就搭建完成了。

标签:webservice,spring,springframework,cxf,apache,public,se,schema
来源: https://www.cnblogs.com/linjingyg/p/15807094.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有