CXF 实现 REST 方式上传文件
/**
*
*/
package com.demo.rest;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import javax.activation.DataHandler;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.cxf.jaxrs.ext.multipart.ContentDisposition;
import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
import org.springframework.stereotype.Service;
/**
* @author michael
*
*/
@Path("/image")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Service
public class ImageServiceResource {
private static final String UPLOAD_FILE_NAME ="filename";
private static final String UPLOAD_FILE_TEMP ="tmp";
@POST
@Path("/upload/{task}")
@Consumes({ "multipart/form-data" })
public boolean attachImage(@PathParam("task") int task, MultipartBody body) {
RestResult result = new RestResult();
try {
addAttachment(body.getRootAttachment(),task);
} catch (IOException e) {
} catch (Exception e) {
}
return true;
}
@POST
@Path("/uploads/{task}")
@Consumes({ "multipart/form-data" })
public RestResult attachImages(@PathParam("task") int task, MultipartBody body) {
RestResult result = new RestResult();
for (Attachment attachment : body.getAllAttachments()) {
try {
addAttachment(attachment,task);
} catch (IOException e) {
} catch (Exception e) {
}
}
return true;
}
public void addAttachment(Attachment attachment, int task) throws Exception {
try {
DataHandler dataHandler = attachment.getDataHandler();
ContentDisposition cd =attachment.getContentDisposition();
String path = "c:/temp/";
String name = cd.getParameter(UPLOAD_FILE_NAME);
if(name==null){
name =UPLOAD_FILE_TEMP+(new Date()).getTime()+"."+"jpg";
}
UploadFileUtils.upload4Stream(name, path, dataHandler.getInputStream());
} catch (IOException e) {
throw e;
} catch (Exception e) {
throw e;
}
}
}
分享到:
相关推荐
"SPRING-MVC-MQ-CXF-REST_Demo"这个项目很可能是用来演示如何在同一个应用中整合Spring MVC、MQ、CXF和REST技术。项目可能包含了以下部分: 1. Spring MVC配置:展示了如何设置DispatcherServlet、视图解析器以及...
<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"/>
cxf-core-3.0.0.jar,cxf-rt-bindings-soap-3.0.0.jar,cxf-rt-databinding-jaxb-3.0.0.jar,cxf-rt-frontend-jaxws-3.0.0.jar,cxf-rt-frontend-simple-3.0.0.jar,cxf-rt-transports-http-3.0.0.jar,cxf-rt-...
这个压缩包"apache-cxf-2.7.7以及cxf客户端所需要的jar包"包含了Apache CXF 2.7.7版本及其客户端运行所需的库文件。这些jar包对于创建、部署和消费Web服务至关重要,特别是对于使用命令行生成Web服务客户端的开发者...
- **JAX-WS**: CXF支持Java API for XML Web Services,允许开发者通过Java注解或XML描述来定义服务接口和服务实现,然后CXF会自动生成相应的WSDL文件。 - **JAX-RS**: 对于RESTful服务,CXF提供了JAX-RS实现,...
Apache CXF 是一个开源的Java框架,用于构建和部署Web服务。这个"apache-cxf-2.2.6.zip"压缩包包含了CXF框架的2.2.6版本,是开发人员进行Web服务开发的重要工具。CXF允许开发者通过简单的API来创建、发布和消费Web...
在“apache-cxf-3.1.6所有jar包”中,lib目录下的jar文件涵盖了这些组件的实现。这些文件通常包括以下几类: - **CXF的核心库**:如cxf-api.jar、cxf-rt-core.jar等,提供了CXF的基础框架和核心功能。 - **JAX-WS和...
赠送jar包:cxf-core-3.0.1.jar; 赠送原API文档:cxf-core-3.0.1-javadoc.jar; 赠送源代码:cxf-core-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-core-3.0.1.pom; 包含翻译后的API文档:cxf-core-3.0.1-...
1. **Web服务实现**:CXF允许开发者使用JAX-WS和JAX-RS标准来创建和部署Web服务。JAX-WS是用于构建SOAP服务的,而JAX-RS则用于构建RESTful服务。 2. **多种协议支持**:CXF支持多种通信协议,如HTTP、HTTPS、JMS等...
- lib目录:包含CXF运行所需的jar文件,这些库文件覆盖了CXF的所有功能模块。 - samples目录:包含了一些示例项目,帮助开发者了解如何使用CXF来创建和使用Web服务。 - docs目录:包含了CXF的文档,如API参考、用户...
赠送jar包:cxf-rt-frontend-jaxrs-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxrs-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxrs-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxrs...
在本案例中,我们讨论的是"apache-cxf-3.4.3.tar.gz",这是Apache CXF 3.4.3版本的压缩包,通常包含了CXF框架的所有组件和必要的库文件。 **1. CXF框架介绍** Apache CXF是一个全面的服务开发框架,它的全称是...
【标题】"java cxf规范rest"涉及到的是Java开发中使用Apache CXF框架实现RESTful服务的相关技术。CXF是一个开源的服务框架,它允许开发者创建和消费各种Web服务,包括基于JAX-WS和JAX-RS的标准。REST...
赠送jar包:cxf-rt-transports-http-3.0.1.jar; 赠送原API文档:cxf-rt-transports-http-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-transports-http-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-transports-...
spring 4.2.0 集成的cxf3.1.18的jar包,cxf-core-3.1.18.jar、cxf-rt-bindings-soap-3.1.18.jar、cxf-rt-databinding-jaxb-3.1.18.jar、cxf-rt-frontend-jaxws-3.1.18.jar、cxf-rt-frontend-simple-3.1.18.jar、cxf-...
5. **RESTful服务**:除了SOAP,CXF也支持REST(Representational State Transfer)风格的服务,这是另一种轻量级的Web服务交互方式,强调资源的URI和HTTP方法。 在描述中提到的"webservice反向生成服务端.docx...
1. **服务实现与调用**:CXF提供了两种方式来实现Web服务,即JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)。开发者可以通过注解或者XML配置文件轻松地将Java类绑定到Web...
1. **Web服务实现**:CXF提供了创建和部署SOAP和RESTful Web服务的工具和支持。开发者可以使用Java编程模型或者WSDL第一的方法来构建服务。 2. **客户端支持**:CXF不仅用于服务端,还允许开发者创建和使用Web服务...
4. **协议栈**:CXF提供了多种协议栈,如SOAP、REST、MTOM(Message Transmission Optimization Mechanism)和SWA(Simple Web Attachment),支持不同类型的Web服务交互。 5. **绑定框架**:CXF的绑定框架允许将...
4. **WS-*规范支持**:CXF实现了诸如WS-Security、WS-Addressing、WS-ReliableMessaging等一系列WS-*规范,增强了Web服务的安全性和可靠性。 5. **插件架构**:CXF的插件架构允许开发者轻松地扩展其功能,比如添加...