九、WebService中文件传输
WebService處理傳遞普通的信息,還可以傳輸文件,下面介紹WebService是怎么完成文件傳輸的。
1、 首先編寫服務器端上傳文件的WebService方法
代碼?
?
上傳方法和我們以前在Web中上傳唯一不同的就是參數一DataHandler,可以將這類看成文件傳輸器,他可以把文件序列化。然后通過DataHandler可以得到一個輸入流InputStream,通過這個流可以讀到文件的內容。其他的操作和普通上傳類似。
2、 定制wsdd發布文件上傳的WebService服務
?
代碼?
?
上面才xml節點元素在前面都見過了,說明下operation中的參數,注意要指定參數類型,特別是DataHandler的類型,然后就是typeMapping的serializer、deserializer的序列化和反序列化工廠類的配置。
3、 用dos命令發布當前WebService
C:\SoftWare\tomcat-5.0.28\tomcat-5.0.28\webapps\AxisWebService\WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/AxisWebService/services/AdminService deployUpload.wsdd
發布完成后,可以通過這個地址查看uploadFile這個service了
http://localhost:8080/AxisWebService/servlet/AxisServlet
4、 編寫客戶端代碼
?
代碼?
?
至此,文件傳輸就完成了。怎么樣,還不錯吧!
如果你用myEclipse進行開發的話,運行時可能會出現以下的錯誤:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
原因是jar包版本不統一,解決方法如下:
刪除Java EE 5 Libraries/javaee.jar/mail里的包有東西.
具體方法如下:
用rar打開X:/Program Files/MyEclipse 6.0/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710/data/libraryset/EE_5/javaee.jar,然后刪除mail,一切就ok了.
本文轉自hoojo博客園博客,原文鏈接:http://www.cnblogs.com/hoojo/archive/2010/12/23/1911385.html,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的九、WebService中文件传输的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux排优命令
- 下一篇: The Changing Face of