`

CXF实现WebService进行文件上传

 
阅读更多

1......................创建上传文件对象类

 

  1. package fileUpLoad;  
  2.   
  3. import javax.activation.DataHandler;  
  4.   
  5. public class Resume {  
  6.   
  7.     private String candidateName;   
  8.     private String resumeFileType;   
  9.     private DataHandler resume;  
  10.     public String getCandidateName() {  
  11.         return candidateName;  
  12.     }  
  13.     public void setCandidateName(String candidateName) {  
  14.         this.candidateName = candidateName;  
  15.     }  
  16.     public String getResumeFileType() {  
  17.         return resumeFileType;  
  18.     }  
  19.     public void setResumeFileType(String resumeFileType) {  
  20.         this.resumeFileType = resumeFileType;  
  21.     }  
  22.     public DataHandler getResume() {  
  23.         return resume;  
  24.     }  
  25.     public void setResume(DataHandler resume) {  
  26.         this.resume = resume;  
  27.     }  
  28.       
  29. }  


2.........................创建接口类

 

 

  1. package fileUpLoad;  
  2.   
  3. import javax.jws.WebMethod;  
  4. import javax.jws.WebParam;  
  5. import javax.jws.WebService;  
  6.   
  7. @WebService  
  8. @javax.xml.ws.soap.MTOM  
  9. public interface ResumeUploadService {  
  10.     @WebMethod  
  11.     public void uploadResume(@WebParam(name = "resume") Resume resume);  
  12. }  


3.........................服务端实现类

 

 

  1. package fileUpLoad;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6. import java.io.InputStream;  
  7. import java.io.OutputStream;  
  8.   
  9. import javax.activation.DataHandler;  
  10.   
  11. public class ResumeUploadServiceImpl implements ResumeUploadService {  
  12.   
  13.     public void uploadResume(Resume resume) {  
  14.   
  15.         System.out.println("1");  
  16.         DataHandler handler = resume.getResume();   
  17.         try {   
  18.             System.out.println("2");  
  19.         InputStream is = handler.getInputStream();   
  20.         OutputStream os = new FileOutputStream(new File("G:\\"   
  21.         + resume.getCandidateName() +"."+   
  22.         resume.getResumeFileType()));   
  23.         byte[] b = new byte[100000];   
  24.         int bytesRead = 0;   
  25.         while ((bytesRead = is.read(b)) != -1) {   
  26.         os.write(b, 0, bytesRead);   
  27.         }   
  28.         System.out.println("3");  
  29.         os.flush();   
  30.         os.close();   
  31.         is.close();   
  32.         } catch (IOException e){  
  33.             e.printStackTrace();          
  34.         }  
  35.     }  
  36. }  


4...........................................发布接口

  1. <!-- 实现文件上传接口 -->  
  2. <jaxws:server id="ResumeUpload" serviceClass="fileUpLoad.ResumeUploadService"  
  3.     address="/ResumeUpload">  
  4.     <!-- 添加实现类 -->  
  5.     <jaxws:serviceBean>  
  6.         <ref bean="ResumeUploadServiceImpl" />  
  7.     </jaxws:serviceBean>  
  8.     <!-- 添加协议 使用MTOM附件-->  
  9.     <jaxws:properties>  
  10.         <entry key="mtom-enabled" value="true" />  
  11.     </jaxws:properties>  
  12. </jaxws:server>  



 

5...................................客户端上传类

 

  1. package fileUpLoad;  
  2.   
  3. import java.io.File;  
  4.   
  5. import javax.activation.DataHandler;  
  6. import javax.activation.DataSource;  
  7. import javax.activation.FileDataSource;  
  8.   
  9. import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;  
  10.   
  11. public class UpLoad {  
  12.     public static void main(String[] args) throws Exception {  
  13.           
  14.         String url = "http://localhost:8080/SpringCXF/services/ResumeUpload?wsdl";  
  15.          Resume resume = new Resume();  
  16.          resume.setCandidateName("ss");  
  17.          resume.setResumeFileType("jpg");  
  18.          DataSource source = new FileDataSource(new File("d:\\中国.jpg"));  
  19.          resume.setResume(new DataHandler(source));   
  20.   
  21.          JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();  
  22.            
  23.          factory.setServiceClass(ResumeUploadService.class);  
  24.          factory.setAddress(url);  
  25.          ResumeUploadService client = (ResumeUploadService) factory.create();  
  26.          try {  
  27.              client.uploadResume(resume);  
  28.         } catch (Exception e) {  
  29.             System.out.println("sa");  
  30.         }          
  31.            
  32.          System.out.println("success");  
  33.     }  
  34.   
  35. }  


如果出现缺少架包的问题,请参考http://blog.csdn.net/wangnetkang/article/details/7818399

 

 

分享到:
评论

相关推荐

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

    基于spring+cxf实现用户文件传输的webservice 在本文中,我们将探讨如何使用Spring+CXF实现用户文件传输的Webservice。该Webservice提供了基本的报文上传和查询功能,同时还提供了用户身份验证功能。 Spring 和 ...

    cxf webservice 文件分块上传

    基于以上文件,我们可以推断,这个项目可能包含了一个使用CXF实现的Web服务,服务端包含处理分块文件上传的逻辑,而`wsdl`和`wsdl-src`文件可能描述了服务的接口。客户端可能通过调用这些服务接口,将大文件分割并逐...

    java 利用webservice传输文件

    3. **文件上传**:在Web服务的客户端端,JACOB可以帮助将本地文件包装成COM对象,然后通过Web服务发送到服务器端。 4. **文件下载**:在服务器端,JACOB可以用来读取文件内容,然后通过Web服务响应将文件数据返回给...

    cxf开发webservice与spring整合所需jar包

    例如,可以通过Spring配置文件声明式地配置CXF服务端点,实现服务的自动扫描和初始化。同时,可以利用Spring的事务管理功能来确保服务操作的原子性和一致性。此外,通过Spring的依赖注入,可以轻松地将自定义逻辑...

    CXF WebService实例

    CXF提供了处理MIME多部分请求的能力,这使得我们可以方便地实现文件上传。你需要创建一个服务方法,接收`multipart/form-data`类型的请求,从中提取文件内容。对于文件下载,你可以返回一个包含文件内容的`...

    cxf rest webservice

    在CXF中实现RESTful Web服务进行文件下载,主要涉及到以下几个关键步骤: 1. **配置CXF**:首先,你需要在项目中引入Apache CXF的依赖库,并配置相关的服务端点(Endpoint)。这通常通过Spring配置文件或者Java配置...

    java cxf webservice接口解决跨域问题

    安装这个库后,我们需要在项目中配置它,以便对CXF Webservice接口进行跨域支持。 `java-property-utils-1.9.jar`是另一个关键组件,它提供了一些工具类,用于处理Java属性文件和环境变量。在这个场景下,它可能...

    webservice文件上传下载.zip

    在本案例中,"webservice文件上传下载.zip"是一个包含实现文件上传和下载功能的Web服务示例。这个压缩包提供的代码可以立即运行,帮助开发者理解如何在Web服务中处理文件操作。 一、Web服务基础 Web服务使用XML(可...

    CXF3.0+Spring3.2 传输文件

    例如,你可以创建一个`@WebService`注解的服务接口,然后实现该接口以处理文件上传和下载的业务逻辑。 2. **设置数据传输**:文件通常是通过HTTP或HTTPS协议传输的,因此你需要在服务方法中使用`javax.activation....

    cxf+spring webservice server demo

    【标题】"cxf+spring webservice server demo"是一个基于Apache CXF和Spring框架构建的Web服务服务器端示例项目。这个项目展示了如何将CXF与Spring集成,以创建、部署和运行一个高效的Web服务。 【描述】指出,由于...

    WebService上传下载

    WebService上传下载是一个常见的Web应用程序功能,它涉及到CXF框架与Spring框架的集成,以及通过WebService接口来...通过分析和运行这些代码,可以加深对WebService文件下载原理的理解,并学习如何在实际项目中应用。

    上传一个最简单的cxf结合spring的Java WebService例子

    在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同应用程序之间进行数据交换。CXF是一个流行的开源框架,用于创建和消费Web服务,而Spring框架则是一个强大的Java企业级应用开发平台。本教程将深入探讨如何...

    springboot+webservice+cxf

    本文将详细介绍如何使用SpringBoot结合CXF来创建一个支持多种数据类型交换和文件上传下载功能的Web服务。 首先,让我们了解SpringBoot。SpringBoot简化了Spring应用的初始搭建以及开发过程。它集成了许多常用的库,...

    CXF3.0.2+Spring3.2.14 WebService入门实例四

    10. **测试与调试**:为了确保服务的正确性,可以编写JUnit测试用例,模拟客户端进行文件上传和下载,检查结果是否符合预期。同时,使用CXF提供的工具,如CXF wsdl2java,生成客户端代码,便于调试和测试。 通过这...

    CXF各种资料.rar

    "WebService之CXF开发指南.doc", "Cxf应用整理.doc", "CXF+WebService+-+release.docx", "基于spring+cxf实现用户文件传输的webservice.docx"是关于CXF的详细学习文档,涵盖了从基础概念到高级特性的讲解,以及具体...

    xfire webservice 上传下载源码

    以上就是关于"xfire webservice 上传下载源码"的相关知识点,希望对你理解和实践XFire在文件上传下载中的应用有所帮助。通过深入研究这个Demo,你可以进一步掌握如何利用XFire构建高效、安全的Web服务。

    CXF应用整理(包括大文件上传MTOM、安全机制)

    本篇文章将深入探讨 CXF 的一些核心功能,包括简单的 HelloWorld 示例、复杂对象的传递、安全机制以及大文件上传(MTOM)。 ### 1. CXF HelloWorld 示例 创建一个简单的 CXF 服务,首先要定义一个服务接口,使用 `...

    Spring XFire 实现webService

    而XFire(后被Apache CXF所吸收)则是一款高效的Web服务实现工具,它允许开发者轻松地创建和消费SOAP Web服务。当Spring与XFire结合时,可以提供一个优雅的、面向切面的Web服务解决方案。本文将深入探讨如何使用...

    CXF WebServices整合SSH2和Uploadify上传控件

    5. **测试与优化**:部署完成后,对整个系统进行测试,确保文件上传流程的完整性和安全性。根据测试结果进行性能优化,例如增加并发处理能力、提升上传速度等。 这个项目展示了如何将这些技术结合,构建一个安全、...

    xfire webservice实现附件上传

    对于附件上传,XFire提供了处理二进制数据流的能力,使得文件上传成为可能。 要实现附件上传,我们需要以下步骤: 1. **创建Web服务接口**:定义一个Java接口,包含一个方法用于接收上传的文件。这个方法通常会...

Global site tag (gtag.js) - Google Analytics