新建ImgData类,存放文件javabean

DataHandler:使用这个类型存放文件

@XmlRootElement(name="ImaData")
@XmlAccessorType(XmlAccessType.FIELD)
public class ImgData {private Integer id;@XmlMimeType("application/octet-stream")private DataHandler imgData;    //文件public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public DataHandler getImgData() {return imgData;}public void setImgData(DataHandler imgData) {this.imgData = imgData;}
}

Webservice接口,

@WebService(name="iHello2")
@SOAPBinding(style = SOAPBinding.Style.RPC)
@MTOM
public interface IHello2 {public void printContext();public ImgData getById(@WebParam(name="imgData")ImgData imgData);
}

实现类

@WebService(serviceName="HelloService",portName="HelloServicePort",
targetNamespace="http://service.lc.com/",endpointInterface="com.lc.service2.IHello2")
public class IHello2Imp implements IHello2 {@Resourceprivate WebServiceContext context;@Overridepublic void printContext() {MessageContext ctx = context.getMessageContext();Set<String> set = ctx.keySet();for(String key : set) {System.out.println("{" + key + "," + ctx.get(key) + "}");try {System.out.println("key.scope:" + ctx.getScope(key));} catch (Exception e) {System.out.println("scope not found");}}}@Overridepublic ImgData getById(ImgData custom) {if(custom.getId() == 1) {File file = new File("f:" + File.separator + "原文件.png");System.out.println(file.exists());custom.setImgData(new DataHandler(new FileDataSource(file)));}return custom;}}

这里需要在f盘下放一个“原文件.png”的文件,当然也可以改
创建webservice类SoapService2,运行

public class SoapService2 {public static void main(String[] args) {Endpoint.publish("http://localhost:8080/HelloService2", new IHello2Imp());System.out.println("run success");}}

生成客户端代码

在cmd使用wsimport -p com.lc.client2 -keep http://localhost:8080/HelloService2?wsdl

把文件拷到eclipse对应包下
创建客户端类SoapClient.java,运行

public class SoapClient {public static void main(String[] args) throws MalformedURLException {QName qName = new QName("http://service.lc.com/", "HelloService");HelloService helloService = new HelloService(new URL("http://localhost:8080/HelloService2?wsdl"), qName);IHello2 hello2 = helloService.getPort(IHello2.class);hello2.printContext();ImgData imgData = new ImgData();imgData.setId(1);ImgData imgData2 = hello2.getById(imgData);DataSource ds = imgData2.getImgData().getDataSource();String ctt = ds.getContentType();System.out.println("ContentType:" + ctt);try {InputStream is = ds.getInputStream();OutputStream os = new FileOutputStream("F:" + File.separator + "t1.png");byte[] bytes = new byte[1024];//一次读取1024byteint i = 0;while((i = is.read(bytes)) != -1){os.write(bytes, 0, i);}} catch (IOException e) {e.printStackTrace();}  }
}

运行结果

参考资料
[1].http://wuhongyu.iteye.com/blog/807470

[2].https://my.oschina.net/liu13430/blog/373940?fromerr=WmdtQOoY

[3].http://clq9761.iteye.com/blog/976029/

转载于:https://www.cnblogs.com/marx-luo/p/6713068.html

webservices系列(二)——JAX-WS文件上传下载相关推荐

  1. salesforce 零基础学习(四十二)简单文件上传下载

    项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...

  2. 【Java编程系列】Minio实现文件上传下载

    热门系列: [Java编程系列]Amazon S3实现文件上传下载 目录 热门系列: 1.前言 2.Minio实战代码 2.1 Minio环境部署 2.2 Minio的Sdk对接实现 2.2.1 Mi ...

  3. [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  4. 直链文件上传下载网站分享(二)

    直链文件上传下载网站分享(一) 直链文件上传下载网站分享(二) 八.GM帮登陆器列表空间 九.墨涩网外链系统 十.树洞外链 十一.豆子外链 十二.凡人外链 十三.图钉外链 十四.小西外链 直链文件上传 ...

  5. linux 安装上传文件,linux常用命令(二)文件上传下载及软件安装

    1.上传下载工具安装 (1)WINDOWS 到linux的文件上传及下载: windows下打开secureCRT,通过SSH连到⾄至远程linux主机: 上传下载工具安装命令:yum -y inst ...

  6. centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载

    1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...

  7. WebService实现文件上传下载

    一:服务端:一个普通java web工程 package com.wzh.file;import com.sun.xml.ws.developer.StreamingAttachment; impor ...

  8. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  9. java实现excel文件上传_java相关:SpringMVC下实现Excel文件上传下载

    java相关:SpringMVC下实现Excel文件上传下载 发布于 2020-6-21| 复制链接 摘记: 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据 ...

最新文章

  1. 重磅!明略发布数据中台战略和三大解决方案
  2. 使用jQuery设置disabled属性与移除disabled属性
  3. ASP——限制表单提交时间期限简单示例
  4. Hadoop生态hive(五)Hive QL数据库
  5. java项目教训_[免费电子书]分析超过600,000个Java项目的经验教训
  6. centos mysql 5.6.19_Centos 6.3将Mysql 5.1.61升级为mysql 5.6.19遇到的问题及解决方式
  7. Google的云计算引擎与持久化存储磁盘PD
  8. Ambari--告警管理
  9. 如何分析竟争网站和优秀网站的设计风格
  10. 结构化数据传输协议xml、json、protobuf比较
  11. python数字图像处理(4):图像数据类型及颜色空间转换
  12. 用SecurAble检测cpu是否支持Intel VT虚拟化技术的LOCKED ON,LOCKED OFF,YES,NO使用说明
  13. 仿写“跳一跳”微信小游戏
  14. 转自【MDCC技术大咖秀】Android内存优化之OOM
  15. 【 unity3d 】Transform.LookAt()方法
  16. 运营︱如何实现用户增长?
  17. 垃圾分类,一场输不起的世界大战--20190711
  18. “从零到一“基于Freeswitch二次开发:Freeswitch入门与网络架构 (一)
  19. eclipse @override 报错 解决
  20. 7.25~7.26 周末翻倍奖励——滴滴快车单

热门文章

  1. dcase_util教程
  2. 通过 dhcp-agent 访问 Metadata - 每天5分钟玩转 OpenStack(168)
  3. 非整数倍数数据位宽转换8to12
  4. 快速计算整数的二进制表示法中1的个数
  5. matlab实现图像放大两倍,matlab图像处理基础知识0(双线性插值matlab实现--调整水平和垂直放大倍数)...
  6. 云溪怎么导入dxf_dwg怎么转换成dxf文件?超详细图文教程分享
  7. linux下centos安装mysql数据库_Linux CentOS 下的MySQL数据库安装与配置-阿里云开发者社区...
  8. scrapy爬虫框架windows下的安装问题
  9. Navicat安装激活
  10. fiddler2抓包数据工具使用教程