`
greemranqq
  • 浏览: 964189 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论
阅读更多

最近使用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

    

 

 

0
0
分享到:
评论

相关推荐

    cxf.xml,cxf-servlet.xml,cxf-extension-soap.xml

    <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学习资料

    WebSphere Aplication Servic&Portal学习资料/cxf学习资料 超值

    CXFWS-Security

    1)参考: ...2)CXFWS工程是基于WS-Security规范,实现X.509身份验证的,同时实现签名和加密 keytool 工具的使用参考 http://hi.baidu.com/qianshuifanchuan/blog/item/6291b8510009ad3c42a75b8e.html ...

    spring与cxf整合开发

    注意:1.服务器端被调用的类上要加注解@WebService,否则访问...报wsdl2java不是内部命令,需要配置path环境变量为D:\workspace\apache-cxf-3.2.1\bin和cxf_home变量为D:\workspace\apache-cxf-3.2.1(具体看下载地址)

    cxf.apache.org/schemas/(jaxrs.xsd、jaxrs.xsd、core.xsd)文件下载

    CXF和Spring整合时,配置文件中所需要的CXF标签的 schema 文件,将所需的xsd文件配置到本地,可以解决部分IDE在编写配置文件时,无法自动提示的问题。

    webservice编写文档

    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> ...

    CXF在eclipse下直接运行的示例

    我在工程里配的路径是http://localhost:8080/cxf/ws.请注意后缀的路径ws是必须的.因为我在web.xml里配的它的路径是<url-pattern>/ws/*</url-pattern>.这个是根据需要可以改变的.有什么不明白的,可以发邮件到我的邮箱...

    基于Apache CXF构建SOA应用

    基于Apache CXF构建SOA应用。全面接受soa 和cxf.

    cxf_helloworld.rar_SOA CXF_SOA JAVA _cxf_cxf helloworld_hellowor

    CXF入门的经典项目,SOA实现技术之一。要学SOA,必看。

    基于spring+cxf实现用户文件传输的webservice

    基于spring+cxf实现用户文件传输的webservice.docx,webservice的小例子,对学习很有用,欢迎大家下载

    基于Apache CXF构建SOA应用 随书源代码

    覆盖以下内容:基于JAX-WS规范和CXF自身的前端模式实现,CXF支持的数据绑定(DataBindings),CXF支持的WSDL绑定,CXF支持的传输协议绑定。CXF的调式、配置、日志、发布和工具。CXF实现RESTful服务。CXF对WS-* 的...

    CXF3.0+Spring3.2 传输文件

    利用CXF3.0.2+Spring3.2.14传输文件,里面有笔者在练习过程中遇到的错误,还有源代码可以下载!

    使用CXF实现WebService(源代码+jar包+文档说明讲解)

    <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 -->...

    WebService CXF --- 传输文件MTOM

    NULL 博文链接:https://exceptioneye.iteye.com/blog/1325187

    CXF发布WebService的多种方法实例

    3、web.xml里配置spring监听器,及其加载的beans.xml,把cxf-servlet.xml删掉,发布到WEB服务器即可,注意这种方式在必须需要本地wsdl文件 手动放在src下,默认发布到web服务器的路径为WEB-INF/classes/xxx.wsdl ...

    ApacheCxfDemo.zip

    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框架约束文件

    CXF框架约束文件,用于导入catelog,CXF是apache旗下的开源框架,由Celtix + XFire这两门经典的框架合成,是一套非常流行的web service框架。

    CXF 文件记录报文日志,非控制台打印。

    CXF 文件记录报文日志,非控制台打印。附件带工程源代码。

Global site tag (gtag.js) - Google Analytics