关于CXF大文件的传输问题
最近在做一个webservice的项目,本人选用的是Apache CXF来实现,因为需要再项目中进行大文件的传输问题,在网上找了很多这方面的资料,都不甚理想,说的都不够明白,有的文章讲的传输小文件还可以,在传输大文件的时候就会报内存溢出异常,这个是麻烦的事情,本人在综合了各位前辈的经验,终于实现了大文件大的传输问题,采用的是mtom的机制进行附件传输,废话少说,下面就是cxf整合spring进行大文件传输的一个例子,当然了,至于jar包就自己到官网下载了,首先开发客户端代码:
第一步:开发接口
?下面是applicationContext.xml的配置:
到这里服务器端就开发完毕,把项目部署到tomcat容器里,访问地址:(我的是80端口)http://localhost/testFileUpload/sealService/FileUpload?wsdl,如果能访问的到,就说明成功了。下面的任务就是要开发客户端了。
首先接口:
?<map><entry key="mtom-enabled" value="true"></entry></map>这个绝对不能少。
现在可以测试了:
package cn.genomics.signtureserver.cxf;import javax.activation.DataHandler;import javax.activation.FileDataSource;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {public static void main(String[] args) {ApplicationContext con = new ClassPathXmlApplicationContext("applicationContext_client.xml");IFileUpload iu = con.getBean("client",IFileUpload.class);Resume re = new Resume();re.setFileName("h1");re.setFileType("zip");re.setFileData(new DataHandler(new FileDataSource("D:\\华大基因\\testDemo\\t1\\h1.zip")));iu.upload(re);}}?