原文:http://www.cnblogs.com/downmoon/archive/2010/08/25/1807982.htmlhtml
在上篇《 Java與WCF交互(一):Java客戶端調用WCF服務》中,我介紹了本身如何使用axis2生成java客戶端的悲慘經歷。有同窗問起使用什麼協議,經初步驗證,發現只有wsHttpBinding可行,而NetTcpBinding不可行,具體緣由待查。昨晚回去從新測試WCF客戶端調用Java Web Service,並將過程公佈以下:java
其實本不須要作web service,只是原來公開的經典的Web service像(http://soapinterop.java.sun.com/round2.base?WSDL)等不可訪問了。因而邀月重寫了一個本地的web service,以做演示。web
第一步:創建本地java環境,並構建 web Service代碼,發佈web serviceapi
一、設置Java環境:瀏覽器
JDK6/J2SE1.6以上,必須!!後面邀月會說明緣由。app
Eclipse 3.6eclipse
Axis2_Codegen_Wizard_1.4.1插件,配置見上文《 Java與WCF交互(一):Java客戶端調用WCF服務》工具
假定以上環境都OKpost
二、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 元素相關聯。(注:本段內容來自IBM官方網站,https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-eclipse-javase1/section3.html)
下一步,就是Ant工具大派用場的時候了,
在項目根路徑下新建一build.xml,內容如圖:
以"Ant Build"方式運行該文件:
應該在控制檯收到以下信息:
以上信息,代表ant建立成功!此時,刷新項目視圖,應該獲得如圖所示的結果,其中黃色部分爲剛生成的內容:
在package中新增一個主類,是否感受有點像WCF中的Host引擎?其實做用就是如此。
其內容以下:
運行程序,就如同運行WCF中的Host:
能夠用內部的瀏覽器來瀏覽這個地址:http://localhost:8080/JavaServiceForWCFClient?wsdl
至此,Java web端部署完成。
第二步:創建本地WCF客戶端,調用第一步生成的web service
新建一個普通的控制檯項目,名爲WCFClientFromJava,,並按下圖所示使用SvcUtil命令:(Svcutil.exe,ServiceModel 元數據實用工具用於依據元數據文檔生成服務模型代碼,以及依據服務模型代碼生成元數據文檔。ServiceModel 元數據實用工具可在 Windows SDK 安裝位置中找到,通常位置爲 C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin)
生成後,將生成的文件包含在項目中,項目結構以下:
生成的app.config文件以下:
此時,在program.cs文件中添加以下方法:
至此,WCF客戶端調用Java Web service成功!
小結,這是一個很簡單的demo,主要技術點在於:
一、@Webservice的使用,參看http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/
二、SvcUtil的使用,參看MSDN:http://msdn.microsoft.com/zh-cn/library/aa347733%28VS.90%29.aspx
本文參考:
使用 Eclipse 和 Java SE 6 建立獨立 Web Services 應用程序,第 1 部分: Web Services 服務端應用程序
Introducing JAX-WS 2.0 With the Java SE 6 Platform, Part 1
http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/