cxf文件上传运行实例

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");  
    }  
  
}

 

引用提供了一个学习Spring Boot整合CXF实现文件上传的例子,它详细地解释了每个类的注释,可以帮助你理解如何使用Spring Boot搭建CXF文件上传功能。 首先,你需要使用Maven将项目打包成一个可执行的JAR文件。可以通过运行以下命令实现: ``` mvn clean package ``` 然后,将生成的JAR文件上传到服务器上。可以使用以下命令将JAR文件上传到服务器: ``` scp target/springboot-demo-0.0.1-SNAPSHOT.jar user@server:/path/to/destination ``` 接下来,需要编写一个Dockerfile来构建Docker镜像。可以使用以下内容编写Dockerfile: ```Dockerfile FROM openjdk:8-jre-alpine COPY springboot-demo-0.0.1-SNAPSHOT.jar /springboot-demo.jar ENTRYPOINT ["java", "-jar", "/springboot-demo.jar"] ``` 使用以下命令基于Dockerfile创建一个镜像: ``` docker build -t springboot-demo-image . ``` 最后,可以使用以下命令查看是否成功创建了镜像: ``` docker images ``` 这样,你就可以使用Spring Boot搭建CXF文件上传功能了。请根据你的需求进一步配置和调整代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot整合CXF发布webservice和客户端调用](https://download.csdn.net/download/maple_fix/10339294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Kubernetes(k8s)实战:Kubernetes(k8s)部署Springboot项目](https://blog.csdn.net/A_art_xiang/article/details/131552158)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值