`
fxly0401
  • 浏览: 148660 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用axis2传输附件

阅读更多

服务端Service文件:
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import javax.activation.DataHandler;

public class FileService {
	// 使用byte[]类型参数上传二进制文件
	public boolean uploadWithByte(byte[] file, String filename) {
		FileOutputStream fos = null;
		try {
			fos = new FileOutputStream(filename);
			fos.write(file);
			fos.close();
		} catch (Exception e) {
			return false;
		} finally {
			if (fos != null) {
				try {
					fos.close();
				} catch (Exception e) {
				}
			}
		}
		return true;
	}

	//利用字节流上传文件
	private void writeInputStreamToFile(InputStream is, OutputStream os)throws Exception {
		int n = 0;
		byte[] buffer = new byte[8192];
		while ((n = is.read(buffer)) > 0) {
			os.write(buffer, 0, n);
		}
	}

	// 使用DataHandler类型参数上传文件
	public boolean uploadWithDataHandler(DataHandler file, String filename) {

		FileOutputStream fos = null;
		try {
			fos = new FileOutputStream(filename);
			// 可通过DataHandler类的getInputStream方法读取上传数据
			writeInputStreamToFile(file.getInputStream(), fos);
			fos.close();
		} catch (Exception e) {
			return false;
		} finally {
			if (fos != null) {
				try {
					fos.close();
				} catch (Exception e) {
				}
			}
		}
		return true;
	}
}


服务端services.xml文件:
<service name="FS">
		<description>文件服务</description>
		<parameter name="ServiceClass">com.liuwei.fs.FileService</parameter>
		<messageReceivers>
			<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
		</messageReceivers>
	</service>


通过Axis2 code2java工具生成客户端代码FSStub和FSCallbackHandler。
以使用byte[]类型参数上传二进制文件接口uploadWithByte为例,客户端测试代码如下:
public class TestClient {
	public static void main(String[] args) {
		try {
			FSStub stub = new FSStub("http://localhost:8080/TestWS/services/FS");
			DataHandler dh = new DataHandler(new FileDataSource("F:\\file1.txt"));
			UploadWithByte uwb = new UploadWithByte();
			uwb.setFile(dh);
			uwb.setFilename("F:\\file2.txt");
			
			FSStub.UploadWithByteResponse br = stub.uploadWithByte(uwb);
			System.out.println(br.get_return());

		}  catch (RemoteException e) {
			System.out.println("远程连接失败:"+e.getMessage());
			e.printStackTrace();
		}
	}
}


分享到:
评论

相关推荐

    (转)Axis2 附件传输

    【文件使用】"使用Axis2传输附件.txt" 该文本文件很可能包含了详细的代码示例,指导读者如何在实际项目中设置和使用Axis2的附件传输功能。它可能涵盖了服务端和客户端的代码实现,以及可能遇到的问题和解决策略。 ...

    axis2的API,axis2 API,axis2帮助文档

    本文将详细介绍Axis2的API及其在Web服务开发中的应用,同时也会探讨Axis2的帮助文档如何协助开发者更好地理解和使用这个框架。 ### Axis2简介 Axis2是Apache Axis的第二代版本,它在第一代的基础上进行了许多改进和...

    webservice学习二之(1)axis2服务器端方式开发总结(附件含有项目)

    - **构建服务存根**:Axis2使用wsdl2java工具根据WSDL生成服务存根和服务骨架。服务存根包含了客户端调用服务的代码,而服务骨架则是服务端实现的具体逻辑。 - **部署服务**:将服务存根、服务骨架及相关的Java类...

    最新axis2实例.rar

    这个“最新axis2实例.rar”压缩包提供了最新的Axis2实例,便于开发者学习和实践如何部署及使用Axis2。 在深入讨论Axis2的知识点之前,我们需要了解Web服务的基本概念。Web服务是一种通过网络进行通信的应用程序接口...

    axis2-1.7.5-bin.zip

    6. **部署**:Axis2使用服务描述文件(AAR)来部署Web服务。AAR文件是ZIP格式,包含WSDL、服务类、资源文件等。你可以将AAR文件放到Axis2的"services"目录下,服务就会自动部署并可供使用。 7. **消息传递模型**:...

    axis2-1.8.0apache-cxf-3.4.4.rar

    1. **SOAP处理**:Axis2能够处理各种SOAP消息,支持SOAP 1.1和1.2规范,包括处理附件(MTOM和SwA)和WS-Addressing等扩展。 2. **模块化架构**:Axis2采用模块化设计,允许开发者按需选择和组合功能,比如安全、...

    axis2-1.6.1

    6. **模块**: 可选功能模块,如MTOM(Message Transmission Optimization Mechanism)和SwA(SwaAttachment)支持,用于优化XML消息传输和处理附件。 使用Axis2,开发者可以轻松地创建服务端点,通过编写Java类来...

    axis2需要的1.6.2jar

    - **部署(Deployment)**:Axis2使用XML配置文件(axis2.xml)来部署服务和模块。 在示例项目中,你可能会看到如何设置服务、配置传输、生成客户端代码、调用接口等步骤。通过运行这些示例,你可以了解Axis2的工作...

    Axis2 1.3 API帮助文档

    《Axis2 1.3 API帮助文档》是一个详细的指南,主要针对使用Axis2 1.3版本进行Web服务开发的开发者。Axis2是Apache软件基金会开发的一个强大的Web服务引擎,它提供了一种灵活且高性能的方式来实现和部署SOAP(简单...

    axis2-1.3-bin.zip

    3. **AXIOM(Abstraction eXtensible Information Object Model)**:Axis2使用的XML对象模型,提高了处理效率。 4. **RESTful Web Services**:除了SOAP,Axis2也支持REST风格的服务。 **六、安全性** Axis2提供了...

    axis2-1.7.9-bin.tar.gz

    3. **高效的性能**:Axis2使用了线程池和内存管理策略,提高了处理大量并发请求的能力,确保了高性能。 4. **多种语言支持**:除了Java,Axis2还支持多种语言编写的服务端代码,如PHP、C++和Python,增强了跨平台的...

    axis2-1.5.4-bin.zip,官网下载

    Apache Axis2是基于Java开发的一个Web服务框架,用于构建高性能、灵活且可扩展的Web服务。它是Apache SOAP(Simple Object ...了解和掌握Axis2的各项功能和使用方法,对于提升Java Web服务开发效率和质量具有重要意义。

    axis2-1.7资源包

    2. **模块**:Axis2允许通过模块化方式添加特定功能,如数据绑定(如AXIS2_ADB、AXIS2.xmlbeans)、MTOM(消息传输优化机制)和SWA(SwA协议,用于在SOAP消息中传输附件)。 3. **服务部署文件**:Axis2支持服务部署...

    利用Axis2实现WebService开发与部署

    然后,使用Axis2的ServiceStub和ServiceDeployer将服务部署到Axis2服务器。 3.1.2 客户端 客户端通过创建ServiceClient对象,调用服务端的方法。ServiceClient可以根据WSDL自动生成客户端代码,或者手动编写。 3.2...

    axis 上传附件跟接收附件

    标题“Axis 上传附件跟接收附件”涉及到的是在使用 Axis 框架进行 Web 服务交互时处理文件传输的问题。Axis 是一个流行的开源 Java SOAP 客户端和服务端实现,它允许开发人员创建和部署 Web 服务。在这个场景中,...

    axis2必须的jar包

    在使用Axis2时,必须包含一系列的JAR(Java Archive)文件来确保其正常运行。这些JAR文件提供了Axis2运行所需的核心库、依赖和服务处理功能。以下是关于“axis2必须的jar包”及其相关知识点的详细说明: 1. **核心...

    axis2_client_data_transfer_mode.rar_axis2

    标题中的"axis2_client_data_transfer_mode.rar_axis2"暗示了我们关注的是Axis2框架下的客户端数据传输模式。Axis2是Apache软件基金会开发的一个开放源代码Web服务引擎,它主要用于构建和部署Web服务。这个压缩包...

Global site tag (gtag.js) - Google Analytics