最近使用webservice 做平台接口,SOA那边要求有有文件传输的东西,类型javax.activation.DataHandler
我数据库用的oracle ,类型blob.orm 框架 是hibernate .
文件对应的字段是:
private Blob fileContent;
@Lob
@Column(name = "FILE_CONTENT")
public Blob getFileContent() {
return this.fileContent;
}
转换方法:
先转换成二进制流
InputStream in = 文件对象.getFileContent().getBinaryStream();
然后穿件一个数组,可以一次放入的,当然可以自己优化大小
byte[] buff = new byte[(int) 文件对象.getFileContent().length()];
// 这里我是先写入一个临时文件
File file = new File("../temp_"+文件名)
OutputStream output = new FileOutputStream(file);
BufferedOutputStream bufferedOutput = new BufferedOutputStream(output);
bufferedOutput.write(buff);
// 这里刷进去,不然老写不完。。
bufferedOutput.flush();
这里创建 handdler 对象,当然也可以直接根据路径资源创建。自己看API
DataHandler handler = new DataHandler(new FileDataSource(file));
剩下的事情就是 webservice 传输对象,组织参数什么的了,,,
因为我一次可能多个文件,所以我写的循环,将File 以及Stream 保存起来,然后发送完了之后,在
fially {} 里面进行了 流的关闭,以及临时文件的删除。file.delete() .有更好的方式欢迎提供。
小结:
1. 这个功能比较普通使用,因为只要你拿到文件数据 或者二进制数据,JAVA io 各种流的相互转换这里就不在累赘了。
2.当然如果使用axis,xfire,jws 等东西,我就不确定了,需要尝试。我这里使用是cxf2.3.1 JDK1.6
3.文件传输还要注意 环境以及编码的问题,这个大家做的时候也要注意一下,而且这种传输不宜传大文件,最好别超过10M
相关推荐
<import resource="classpath:META-INF/cxf/cxf.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
WebSphere Aplication Servic&Portal学习资料/cxf学习资料 超值
1)参考: ...2)CXFWS工程是基于WS-Security规范,实现X.509身份验证的,同时实现签名和加密 keytool 工具的使用参考 http://hi.baidu.com/qianshuifanchuan/blog/item/6291b8510009ad3c42a75b8e.html ...
注意:1.服务器端被调用的类上要加注解@WebService,否则访问...报wsdl2java不是内部命令,需要配置path环境变量为D:\workspace\apache-cxf-3.2.1\bin和cxf_home变量为D:\workspace\apache-cxf-3.2.1(具体看下载地址)
CXF和Spring整合时,配置文件中所需要的CXF标签的 schema 文件,将所需的xsd文件配置到本地,可以解决部分IDE在编写配置文件时,无法自动提示的问题。
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> ...
我在工程里配的路径是http://localhost:8080/cxf/ws.请注意后缀的路径ws是必须的.因为我在web.xml里配的它的路径是<url-pattern>/ws/*</url-pattern>.这个是根据需要可以改变的.有什么不明白的,可以发邮件到我的邮箱...
基于Apache CXF构建SOA应用。全面接受soa 和cxf.
CXF入门的经典项目,SOA实现技术之一。要学SOA,必看。
基于spring+cxf实现用户文件传输的webservice.docx,webservice的小例子,对学习很有用,欢迎大家下载
覆盖以下内容:基于JAX-WS规范和CXF自身的前端模式实现,CXF支持的数据绑定(DataBindings),CXF支持的WSDL绑定,CXF支持的传输协议绑定。CXF的调式、配置、日志、发布和工具。CXF实现RESTful服务。CXF对WS-* 的...
利用CXF3.0.2+Spring3.2.14传输文件,里面有笔者在练习过程中遇到的错误,还有源代码可以下载!
<import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <!-- DAO -->...
NULL 博文链接:https://exceptioneye.iteye.com/blog/1325187
3、web.xml里配置spring监听器,及其加载的beans.xml,把cxf-servlet.xml删掉,发布到WEB服务器即可,注意这种方式在必须需要本地wsdl文件 手动放在src下,默认发布到web服务器的路径为WEB-INF/classes/xxx.wsdl ...
http://www.apache.org/dyn/closer.lua/cxf/3.0.8/apache-cxf-3.0.8.zip CXF - prefix wsdp is not bound to a namespace - with linked exception - 报错处理 应该是接口服务实现类上没有加标注@WebService。
CXF框架约束文件,用于导入catelog,CXF是apache旗下的开源框架,由Celtix + XFire这两门经典的框架合成,是一套非常流行的web service框架。
CXF 文件记录报文日志,非控制台打印。附件带工程源代码。