用基於AXIS的Web Service傳輸文件

  最近項目中需要使用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,今天就寫到這吧,該睡覺咯,呵呵~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章