Fileentity.java
package com.yunix.service.entity; import javax.activation.DataHandler; /** * 文件实体类 * @author yunix * 2013-3-2 上午11:19:22 */ public class FileEntity { private String fileName; private String fileType; private DataHandler file; public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public String getFileType() { return fileType; } public void setFileType(String fileType) { this.fileType = fileType; } public DataHandler getFile() { return file; } public void setFile(DataHandler file) { this.file = file; } }
IFileService.java
package com.yunix.service.webservice; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import javax.xml.ws.soap.MTOM; import com.yunix.service.entity.FileEntity; /** * 文件service接口 * @author yunix * 2013-3-2 上午11:22:22 */ @WebService @MTOM public interface IFileService { @WebMethod public void uploadFile(@WebParam(name="fileEntity")FileEntity fileEntity); }
FileService.java
package com.yunix.service.webservice; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.activation.DataHandler; import com.yunix.service.entity.FileEntity; /** * 文件Service实现 * @author yunix * 2013-3-2 上午11:24:57 */ public class FileService implements IFileService { @Override public void uploadFile(FileEntity fileEntity) { System.out.println("1"); DataHandler handler = fileEntity.getFile(); System.out.println("2"); try { InputStream is = handler.getInputStream(); OutputStream os = new FileOutputStream(new File("F:/"+fileEntity.getFileName()+"."+fileEntity.getFileType())); byte[] b = new byte[100000]; int bytesRead = 0; while((bytesRead = is.read(b)) != -1){ os.write(b, 0,bytesRead); } System.out.println("3"); os.flush(); os.close(); is.close(); } catch (IOException e) { e.printStackTrace(); } } }
cxf-servlet.xml配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <jaxws:endpoint id="file" implementor="com.yunix.service.webservice.FileService" address="/fileService"> </jaxws:endpoint> </beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>cxf</display-name> <description>Apache CXF Endpoint</description> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:cxf-servlet.xml</param-value> </context-param> <servlet> <servlet-name>cxf</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>cxf</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
启动并运行项目
http://localhost:8080/service-file/fileService?wsdl
可查看wsdl
测试代码:
package com.test; import java.io.File; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import com.yunix.service.entity.FileEntity; import com.yunix.service.webservice.IFileService; public class Test { public static void main(String[] args) throws Exception { String url = "http://localhost:8080/service-file/fileService?wsdl"; FileEntity file = new FileEntity(); file.setFileName("2012-03-04TestFile"); file.setFileType("jpg"); DataSource source = new FileDataSource(new File("d:\\123456.jpg")); file.setFile(new DataHandler(source)); JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(IFileService.class); factory.setAddress(url); IFileService client = (IFileService) factory.create(); try { client.uploadFile(file); } catch (Exception e) { System.out.println(e); } System.out.println("success"); } }
相关推荐
本实例将深入探讨如何使用CXF来开发Web Service。 首先,让我们了解CXF的核心功能。CXF支持两种主要的Web Service规范:SOAP(简单对象访问协议)和REST(代表性状态转移)。SOAP是基于WSDL(Web服务描述语言)的,...
这个集成实例主要展示了如何使用CXF来创建和消费Web服务,包括设置输入和输出拦截器、用户验证以及文件上传等功能。让我们深入探讨一下这些知识点。 1. **CXF 创建 Web Service** - **服务接口定义**:首先,我们...
综上所述,"webservice文件上传下载.zip"是一个关于如何使用Web服务进行文件操作的实例,涵盖了文件上传、下载的基本原理以及相关的安全措施。通过学习和实践这个示例,开发者可以更好地理解和应用Web服务技术。
这个项目展示了如何将CXF与Spring集成,以创建、部署和运行一个高效的Web服务。 【描述】指出,由于文件大小的限制,客户端部分是分开上传的。这意味着该项目不仅包括了服务端的实现,而且可能需要配合一个单独的...
本篇文章将深入探讨如何利用Mule调用XFire发布的文件上传服务,通过实践来提升我们的IT技能。 首先,我们需要理解Mule ESB。Mule是一个开源的ESB,它提供了多种连接器,可以轻松地连接到各种系统,如数据库、Web...
这个资源,"apache-cxf-jar包(分两次).rar",显然是一个包含Apache CXF库的压缩文件,由两个部分组成,这里只列出了第一部分:"apache-cxf-jar包(1)"。下面我们将深入探讨Apache CXF的核心概念、用途以及如何...
WebService上传下载是一个常见的Web应用程序功能,它涉及到CXF框架与Spring框架的集成,以及通过WebService接口来处理文件的下载操作。下面将详细讲解这个主题的相关知识点。 首先,让我们了解一下CXF。CXF是一个...
请将这个文件导入您的数据库管理系统,以确保您的CxfWebService实例拥有完整、准确的数据库结构。导入过程可能会涉及到SQL脚本执行,具体步骤可能因所使用的数据库系统(如MySQL、PostgreSQL或Oracle)而异,通常...
1. 添加CXF依赖:在Java项目的pom.xml文件中引入Apache CXF的依赖,确保能使用CXF的工具生成客户端代码。 2. 使用WSDL2Java工具:通过.NET ASMX Web服务的WSDL地址,运行CXF的WSDL2Java命令生成Java客户端代码。这...
基于Java的Web项目中实现文件上传和下载需要利用HTML表单和一些特定的JSP标签或者Servlet API来完成。 服务器收到用户提交的表单数据,会根据表单的method属性值调用Servlet中的doGet()或doPost()方法。GET方法用于...