用基于AXIS的Web Service传输文件

来源:互联网 发布:淘宝用户名能改吗 编辑:程序博客网 时间:2024/05/19 09:04

  最近项目中需要使用Web Service来传输文件,研究了下Axis中对文件传输的支持机制,现写在博客里,一方面是作为备忘,二来希望对用到的人有作帮助。

  Axis中主要使用DataHandler来提供对文件的读入操作,DataHandler的getInputStream方法可以得到从客户端传入的文件流,DataHandler的作用主要是对客户端传输的文件进行序列化操作。

  下面来看Server端代码:

 

  server-config.wsdd

   看了deploy配置文件后,大家也许会问,DataHandler就是用来作文件序列化操作的,那为什么在wsdd文件中还要配置文件序列化/反序列化器呢?

  这是因为DataHandler本身是需要序列化和反序列化的,所以必须要用Axis提供的序列化/反序列化器JAFDataHandlerSerializerFactory和JAFDataHandlerDeserializerFactory来进行序列化/反序列化操作。

  Client端代码:

当运行完Client代码后,会在Console中显示出:

Success file saved on server, at: E:/Eclipse3.4.2/readme.txt

 

  仔细的读者可以会发现,这个在服务器上存放文件的路径比较奇怪,怎么会是Eclipse的工作路径,而不是Tomcat服务器的工作路径呢?按理说应该存储在服务器的路径下,经过一番试验后发现,影响存放位置的是在Eclipse中服务器的Working directory路径,它默认为Eclipse的安装路径。这个值大家可以点击服务器属性页--> "Open launch configuration" --> "Arguments“ --> "Working directory"进行修改。见下图。

 

  OK,今天就写到这吧,该睡觉咯,呵呵~~

原创粉丝点击