webservices系列(二)——JAX-WS文件上传下载
新建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文件上传下载相关推荐
- salesforce 零基础学习(四十二)简单文件上传下载
项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...
- 【Java编程系列】Minio实现文件上传下载
热门系列: [Java编程系列]Amazon S3实现文件上传下载 目录 热门系列: 1.前言 2.Minio实战代码 2.1 Minio环境部署 2.2 Minio的Sdk对接实现 2.2.1 Mi ...
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...
引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...
- 直链文件上传下载网站分享(二)
直链文件上传下载网站分享(一) 直链文件上传下载网站分享(二) 八.GM帮登陆器列表空间 九.墨涩网外链系统 十.树洞外链 十一.豆子外链 十二.凡人外链 十三.图钉外链 十四.小西外链 直链文件上传 ...
- linux 安装上传文件,linux常用命令(二)文件上传下载及软件安装
1.上传下载工具安装 (1)WINDOWS 到linux的文件上传及下载: windows下打开secureCRT,通过SSH连到⾄至远程linux主机: 上传下载工具安装命令:yum -y inst ...
- centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载
1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...
- WebService实现文件上传下载
一:服务端:一个普通java web工程 package com.wzh.file;import com.sun.xml.ws.developer.StreamingAttachment; impor ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- java实现excel文件上传_java相关:SpringMVC下实现Excel文件上传下载
java相关:SpringMVC下实现Excel文件上传下载 发布于 2020-6-21| 复制链接 摘记: 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据 ...
最新文章
- 重磅!明略发布数据中台战略和三大解决方案
- 使用jQuery设置disabled属性与移除disabled属性
- ASP——限制表单提交时间期限简单示例
- Hadoop生态hive(五)Hive QL数据库
- java项目教训_[免费电子书]分析超过600,000个Java项目的经验教训
- centos mysql 5.6.19_Centos 6.3将Mysql 5.1.61升级为mysql 5.6.19遇到的问题及解决方式
- Google的云计算引擎与持久化存储磁盘PD
- Ambari--告警管理
- 如何分析竟争网站和优秀网站的设计风格
- 结构化数据传输协议xml、json、protobuf比较
- python数字图像处理(4):图像数据类型及颜色空间转换
- 用SecurAble检测cpu是否支持Intel VT虚拟化技术的LOCKED ON,LOCKED OFF,YES,NO使用说明
- 仿写“跳一跳”微信小游戏
- 转自【MDCC技术大咖秀】Android内存优化之OOM
- 【 unity3d 】Transform.LookAt()方法
- 运营︱如何实现用户增长?
- 垃圾分类,一场输不起的世界大战--20190711
- “从零到一“基于Freeswitch二次开发:Freeswitch入门与网络架构 (一)
- eclipse @override 报错 解决
- 7.25~7.26 周末翻倍奖励——滴滴快车单
热门文章
- dcase_util教程
- 通过 dhcp-agent 访问 Metadata - 每天5分钟玩转 OpenStack(168)
- 非整数倍数数据位宽转换8to12
- 快速计算整数的二进制表示法中1的个数
- matlab实现图像放大两倍,matlab图像处理基础知识0(双线性插值matlab实现--调整水平和垂直放大倍数)...
- 云溪怎么导入dxf_dwg怎么转换成dxf文件?超详细图文教程分享
- linux下centos安装mysql数据库_Linux CentOS 下的MySQL数据库安装与配置-阿里云开发者社区...
- scrapy爬虫框架windows下的安装问题
- Navicat安装激活
- fiddler2抓包数据工具使用教程