cxf的web service服务,包含client端、service端
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端相关推荐
- 基于Spring Boot应用Apache CXF发布Web Services服务
记录:298 场景:使用Spring Boot应用Apache CXF发布Web Services服务,实现跨系统之间交互接口. 版本: JDK 1.8 Spring Boot 2.6.3 Apach ...
- Android Service 服务(一)—— Service
一. Service简介 Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver.ContentProvider),它跟Activi ...
- Android Service服务保活
基于Android 10.11 实现的Service服务保活 最近公司要实现app程序不被杀死 实现持续定位,在网上看了很多个文章 也看到双进程保活,我忘了在那看到这篇文章了 下面 具体显现 创建 M ...
- Linux下用gSOAP开发Web Service服务端和客户端程序(一)
1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写 ...
- axis idea 设置apache_利用IDEA创建Web Service服务端和客户端的详细过程
创建服务端 一.file–>new–>project 二.点击next后输入服务端名,点击finish,生成目录如下 三.在 HelloWorld.Java 文件中右击,选 WebServ ...
- 使用axis开发web service服务端
一.axis环境搭建 1.安装环境 JDK.Tomcat或Resin.eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4 下载 ...
- VCSA 上的 vmware-vpxd 服务失败,Web端提示503 服务不可用 (503 Service Unavailable)
昨晚VCSA碰到一个很诡异的问题: 使用 vSphere Web Client 连接到 vCenter Server Appliance时失败,提示: 503 服务不可用 (503 Service U ...
- Eclipse快速创建Bottom Up类型的Web Service服务端
什么是Buttom 的Up Web Service 简言之就是从一个Java类创建Web Servcie服务(包括WSDL文件,部署描述文件等). 本篇演示环境配置 Eclipse Version: ...
- Apache CXF实现Web Service(5)—— GZIP使用
Apache CXF实现Web Service(5)-- GZIP使用 参考来源: CXF WebService整合Spring Apache CXF实现Web Service(1)--不借助重量级W ...
最新文章
- 机器学习开源项目Top10
- intellij (org.jdom.input.JDOMParseException) Error on line 1: 前言中不允许有内容。
- 手机html图片模糊,css3处理sprite背景图压缩来解决H5网页在手机浏览器下图标模糊的问题_html/css_WEB-ITnose...
- 计算一个list中数据的平均数、中位数和众数【python实现】
- 能否用痰盂盛饭——谈谈在头文件中定义外部变量
- Angular Component ngOnInit和ngAfterViewInit调用时机的讨论
- android 屏幕关闭 eofexception,android EOFException异常解决办法 (SharedPreferences保存对象)...
- php商品分类添加字段,zblogPHP分类模板添加自定义字段(调用UEditor编辑器输入法)...
- 51Nod-1010 只包含因子2 3 5的数【打表+排序+二分搜索】
- 物联网开发笔记(28)- 使用Micropython开发ESP32开发板之控制240x240的oled屏幕显示图片(ST7789芯片)
- 大数据教学竞赛科研平台设计思路
- java编程填空及答案_JAVA填空题标准答案(103题)
- 如何利用“跑腿系统”来提高生活效率?
- Android Studio实现内容丰富的旅游App
- python 期货现货差价监测_现货价格和期货价格的关系怎么看?
- 不会聊天?不会撩妹?宅男如何走出自闭的循环圈
- 计算机组成原理中,数据总线与地址总线位数
- C语言实现,输入某年某月某日,判断这一天是这一年的第几天?
- js11位手机号码正则验证
- char*data和char data[]