1.下载需要的客户端、服务端Jar,客户端jar包链接:  https://github.com/zhangliqingyun/jarlist/tree/master/webserviceclient    服务端jar包链接:https://github.com/zhangliqingyun/jarlist/tree/master/webserviceservice

2.配置web service服务,实现客户端与服务端通信

(1)web.xml内容

<display-name>xxfw</display-name><servlet><servlet-name>Way REST Service</servlet-name><servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class><init-param>  <!—初始化服务à<param-name>jersey.config.server.provider.packages</param-name><param-value>com.rdtsw.service</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet><description></description><servlet-name>MsgSevlet</servlet-name><servlet-class>com.rdtsw.action.MsgSevlet</servlet-class></servlet><servlet-mapping><servlet-name>Way REST Service</servlet-name><url-pattern>/ws/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>MsgSevlet</servlet-name><url-pattern>/MsgSevlet</url-pattern></servlet-mapping>

(2)服务类

@Path("/msg")public class MsgService

(3)服务器端接收文件代码

//文件接收@POST@Path("/RecXMLData/{fileName}")@Produces({"application/json;charset=utf-8","text/plain"})   public String receiveFile(@PathParam("fileName") String fileName, @Context HttpServletRequest request, @Context HttpServletResponse response) {try {   FileOutputStream fos = new FileOutputStream(new File(path + fileName));byte[] buffer = new byte[8096];InputStream is = request.getInputStream();int len;while ((len = is.read(buffer)) != -1){fos.write(buffer, 0, len);}fos.flush();fos.close();return "ok";} catch (Exception e) {return "no"; }}

(4)服务器端发送文件

//文件发送@POST@Path("/SendXmlData/{fileName}")@Produces({"application/json;charset=utf-8","text/plain"})  public String sendFile(@PathParam("fileName") String fileName, @Context HttpServletRequest request, @Context HttpServletResponse response) {try {File testFile = new File(path + fileName);FileInputStream fi = new FileInputStream(testFile);byte[] buf = new byte[2048];DataOutputStream dos = new DataOutputStream(response.getOutputStream());dos.writeUTF(testFile.getName());int len1;while ((len1 = fi.read(buf)) != -1){dos.write(buf, 0, len1);}dos.flush();dos.close();fi.close();return "200";} catch (Exception e) {return "404"; }   }

(5)客户端发送文件

public static void send(String fileName,String deskUrl){//String filename = "bbb.xml";HttpClient ht = new DefaultHttpClient();HttpPost post = new HttpPost("http://192.168.0.123:9080/xxfw/ws/msg/SendXmlData/"+fileName);HttpResponse rs = null;try {rs = ht.execute(post);DataInputStream is  = new DataInputStream(rs.getEntity().getContent());byte[] buffer = new byte[2048];int len2;//读出文件名String filename = is.readUTF();FileOutputStream fos = new FileOutputStream(new File(deskUrl+filename));  while((len2=is.read(buffer))!=-1){fos.write(buffer, 0, len2);}fos.flush();fos.close();is.close();} catch (Exception e) {e.printStackTrace();}finally{System.out.println("文件发送成功");post.abort();}}

(6)客户端接收文件

public static void receive(String fileName,String deskUrl) throws JSONException, URISyntaxException, FileNotFoundException{//String filename = "bbb.xml";Client c = Client.create();  URI u =new URI("http://192.168.0.123:9080/xxfw/ws/msg/RecXMLData/"+fileName);WebResource resource = c.resource(u);MultivaluedMapImpl params = new MultivaluedMapImpl();File testFile = new File(deskUrl+fileName);FileInputStream fis = new FileInputStream(testFile);String aaa = resource.entity(fis).post(String.class);System.out.println("result:"+aaa);}

(7)客户端传递参数

public static void regist() throws URISyntaxException{Client client = Client.create();  URI u = new URI(getUrl("RegJY4GSvr"));      WebResource resource = client.resource(u);    MultivaluedMapImpl params = new MultivaluedMapImpl();     //传递多个参数的方法   params.add("xh", "炫号");  params.add("zclx", "注册类型");  params.add("imei", "imei");  String result = resource.queryParams(params).get(String.class);   System.out.println(result);   }

(8)服务端接收参数

//注册服务@GET  @Path("RegJY4GSvr")@Produces({"text/plain"})   public String regist(@QueryParam("xh") String xh,@QueryParam("zclx") String zclx,@QueryParam("imei") String imei,@Context HttpServletRequest request,@Context HttpServletResponse response){java.util.Date now = new java.util.Date();String registDate = format.format(now);  //注册日全部String zcdwdm = "000001";  //注册单位代码map.put("xh", xh);map.put("zclx", zclx);map.put("imei", imei);map.put("zcrq", registDate);    map.put("zcdwdm", zcdwdm);try {xxfwDao.insertRegist(map);} catch (Exception e) {e.printStackTrace();}  return "注册成功";  }

(9)客户端接收服务端反回的list集合

public static void init() throws URISyntaxException{ClientConfig clientConfig = new DefaultClientConfig();clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);Client client = Client.create(clientConfig);MultivaluedMapImpl params = new MultivaluedMapImpl();String zcdwdm ="000001";String xxlx = "xxlx";params.add("zcdwdm", zcdwdm);params.add("xxlx", xxlx);WebResource resource = client.resource(getUrl("InitJY4GSvr"));    //得到注册服务初始化的urlGenericType<List<Demo>> hsp = new GenericType<List<Demo>>(){};    //返回结果集合类型List<Demo> dwdmList=  resource.queryParams(params).get(hsp);      //单位代码和油料代码的集合System.out.println(dwdmList.get(0).getYldmList().get(0).getYldm());  

(10)服务端返回list集合

//得到单位代码@GET@Path("InitJY4GSvr")@Produces({ MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})public Response InitJY4GSvr(@QueryParam("zcdwdm") String zcdwdm,@QueryParam("xxlx") String xxlx, @Context HttpServletRequest request, @Context HttpServletResponse response){map.put("zcdwdm", zcdwdm);map.put("xxlx", xxlx);List<Demo> list = new ArrayList<Demo>();try {List<Dwdm> dwdmList = xxfwDao.getDwdmList(map);                     //得到单位代码集合List<Yldm> yldmList = xxfwDao.getYldmList(map);                     //得到油料代码集合Demo demo = new Demo();demo.setDwdmList(dwdmList);demo.setYldmList(yldmList);list.add(demo);GenericEntity entity = new GenericEntity<List<Demo>>(list) {};  //返回结果类型return Response.ok(entity).build();} catch (Exception e) {e.printStackTrace();}return null;}

cxf的web service服务,包含client端、service端相关推荐

  1. 基于Spring Boot应用Apache CXF发布Web Services服务

    记录:298 场景:使用Spring Boot应用Apache CXF发布Web Services服务,实现跨系统之间交互接口. 版本: JDK 1.8 Spring Boot 2.6.3 Apach ...

  2. Android Service 服务(一)—— Service

    一. Service简介 Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver.ContentProvider),它跟Activi ...

  3. Android Service服务保活

    基于Android 10.11 实现的Service服务保活 最近公司要实现app程序不被杀死 实现持续定位,在网上看了很多个文章 也看到双进程保活,我忘了在那看到这篇文章了 下面 具体显现 创建 M ...

  4. Linux下用gSOAP开发Web Service服务端和客户端程序(一)

    1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写 ...

  5. axis idea 设置apache_利用IDEA创建Web Service服务端和客户端的详细过程

    创建服务端 一.file–>new–>project 二.点击next后输入服务端名,点击finish,生成目录如下 三.在 HelloWorld.Java 文件中右击,选 WebServ ...

  6. 使用axis开发web service服务端

    一.axis环境搭建 1.安装环境 JDK.Tomcat或Resin.eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4 下载 ...

  7. VCSA 上的 vmware-vpxd 服务失败,Web端提示503 服务不可用 (503 Service Unavailable)

    昨晚VCSA碰到一个很诡异的问题: 使用 vSphere Web Client 连接到 vCenter Server Appliance时失败,提示: 503 服务不可用 (503 Service U ...

  8. Eclipse快速创建Bottom Up类型的Web Service服务端

    什么是Buttom 的Up Web Service 简言之就是从一个Java类创建Web Servcie服务(包括WSDL文件,部署描述文件等). 本篇演示环境配置 Eclipse Version: ...

  9. Apache CXF实现Web Service(5)—— GZIP使用

    Apache CXF实现Web Service(5)-- GZIP使用 参考来源: CXF WebService整合Spring Apache CXF实现Web Service(1)--不借助重量级W ...

最新文章

  1. 机器学习开源项目Top10
  2. intellij (org.jdom.input.JDOMParseException) Error on line 1: 前言中不允许有内容。
  3. 手机html图片模糊,css3处理sprite背景图压缩来解决H5网页在手机浏览器下图标模糊的问题_html/css_WEB-ITnose...
  4. 计算一个list中数据的平均数、中位数和众数【python实现】
  5. 能否用痰盂盛饭——谈谈在头文件中定义外部变量
  6. Angular Component ngOnInit和ngAfterViewInit调用时机的讨论
  7. android 屏幕关闭 eofexception,android EOFException异常解决办法 (SharedPreferences保存对象)...
  8. php商品分类添加字段,zblogPHP分类模板添加自定义字段(调用UEditor编辑器输入法)...
  9. 51Nod-1010 只包含因子2 3 5的数【打表+排序+二分搜索】
  10. 物联网开发笔记(28)- 使用Micropython开发ESP32开发板之控制240x240的oled屏幕显示图片(ST7789芯片)
  11. 大数据教学竞赛科研平台设计思路
  12. java编程填空及答案_JAVA填空题标准答案(103题)
  13. 如何利用“跑腿系统”来提高生活效率?
  14. Android Studio实现内容丰富的旅游App
  15. python 期货现货差价监测_现货价格和期货价格的关系怎么看?
  16. 不会聊天?不会撩妹?宅男如何走出自闭的循环圈
  17. 计算机组成原理中,数据总线与地址总线位数
  18. C语言实现,输入某年某月某日,判断这一天是这一年的第几天?
  19. js11位手机号码正则验证
  20. char*data和char data[]

热门文章

  1. RAID:所有模式详解
  2. 拓扑排序--Kitchen Plates
  3. 2006艾瑞新经济年会成功召开
  4. 关于如何插入网线(网线没网)的同时连接wifi上网
  5. 单片机小白篇1 -51单片机代码加密程序
  6. 数据岗位现状调查报告
  7. AI, 区块链,云计算哪个方向更好呢
  8. 【程序员面试金典】登峰造极--判定字符是否唯一
  9. Java项目:ssm校内超市管理系统
  10. c语言程序设计秋考答案,南开《C语言程序设计》19秋期末考核【标准答案】