2025-05-25

在上篇《  Java與WCF交互(一):Java客戶端調用WCF服務 》中,我介紹瞭自己如何使用axis2生成java客戶端的悲慘經歷。有同學問起使用什麼協議,經初步驗證,發現隻有wsHttpBinding可行,而 NetTcpBinding不可行,具體原因待查。昨晚回去重新測試WCF客戶端調用Java Web Service,並將過程公佈如下:


第一步:建立本地java環境,並構建 web Service代碼,發佈web service


1、設置Java環境:


JDK6/J2SE1.6以上,必須!! 後面邀月會說明原因。


Eclipse 3.6


Axis2_Codegen_Wizard_1.4.1插件,配置見上文 《  Java與WCF交互(一):Java客戶端調用WCF服務 》


假定以上環境都OK


2、Services 服務端應用程序


在Eclipse中新建一個java project,名為JavaServiceForWCFClient,如圖:


邀月工作室


選擇一個運行時庫
邀月工作室


在src下新建一個package,如圖:
邀月工作室


在該package下新建一個類HelloTimeForWCF,代碼如下:


邀月工作室


請註意上圖中:@WebService 的使用。這稱為 Annotation 或元數據,由 Java SE 5 中引入的 Web Services 元數據規范 (Web Services Metadata Specification) 所使用。開發人員在對類和方法應用 Annotation 之前定義類和方法,以向運行時引擎指明如何將類及其方法作為 Web Services 和 Web Services 操作來啟用。Java SE 6 附帶瞭這樣一個引擎。@WebService Annotation 將 SayHello 類標記為實現某個 Web Services ,從而產生可部署的 Web Services 。這個特定的 Annotation 是一個 WSDL 映射 Annotation,並將 Java 源代碼與表示 Web Services 的 WSDL 元素相關聯。


下一步,就是Ant工具大派用場的時候瞭,


在項目根路徑下新建一build.xml,內容如圖
邀月工作室


以”Ant Build”方式運行該文件:
邀月工作室


應該在控制臺收到如下信息:
邀月工作室


以上信息,表明ant創建成功!此時,刷新項目視圖,應該得到如圖所示的結果,其中黃色部分為剛生成的內容:
邀月工作室


在package中新增一個主類,是否感覺有點像WCF中的Host引擎?其實作用就是如此。


邀月工作室


其內容如下:
邀月工作室


運行程序,就如同運行WCF中的Host:




邀月工作室


邀月工作室


至此,Java web端部署完成。
 


 



第二步:建立本地WCF客戶端,調用第一步生成的web service


新建一個普通的控制臺項目,名為 WCFClientFromJava,, 並按下圖所示使用SvcUtil命令:(Svcutil.exe,ServiceModel 元數據實用工具用於依據元數據文檔生成服務模型代碼,以及依據服務模型代碼生成元數據文檔。ServiceModel 元數據實用工具可在 Windows SDK 安裝位置中找到,一般位置為 C:Program FilesMicrosoft SDKsWindowsv6.0Bin)


邀月工作室


生成後,將生成的文件包含在項目中,項目結構如下:
邀月工作室


生成的app.config文件如下:


邀月工作室


此時,在program.cs文件中添加如下方法:
邀月工作室


至此,WCF客戶端調用Java Web service成功!


 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *