Apache CXF Service with WCF client

讀了How to invoke a WSIT endpoint from a WCF client ?, 我在想,Apache CXF是不是也能和WCF集成呢?
<link rel="stylesheet" type="text/css" href="http://maomaode.bokeland.com/plugins/plogeshi/styles/plogeshi.css">基本上按照他的步驟,進行了安裝, 因爲我是在Windows Vista下,所以,安裝.net framework 3.0 就跳過去了。大概的步驟是這樣的:
* 下載並安裝Visual C# 2005 Express Edition
* 下載並安裝Windows Vista SDK
* 下載並安裝 VS2005 擴展
注:安裝之前,最好先確定你的操作系統已經安裝了最新的更新
* 下載並安裝最新的Apache CXF
1. 啓動Service
進入Apache CXF的hello_world sample,
> set CATALINA_HOME=YOUR_TOMCAT_HOME # 注,需要5.5以上版本
> ant deploy -Dtomcat=true
以上操作就是將HelloWorld service 部署到了Tomcat裏
注意:你需要把pingme這個方法從wsdl裏注視掉, 這個方法暫時還無法和WCF集成
至於爲什麼無法訪問,你可以在這裏跟蹤

2.創建WCF client

2.1 啓動VS, 創建一個Console Application, Program.cs 就是你WCF client的入口
2.2 右鍵Solution Explorer, 選擇"Add Service Reference ...", 在彈出的對話框中URL處輸入CXF service的地址 http://localhost:8080/helloworld/services/hello_world?wsdl
2.3 在main方法裏填寫如下的語句:

GreeterClient client = new GreeterClient();
ConsoleApplication1.localhost.sayHi request = new ConsoleApplication1.localhost.sayHi();
 ConsoleApplication1.localhost.sayHiResponse response = client.sayHi(request);
 
Console.WriteLine(response.responseType);
 
 
ConsoleApplication1.localhost.greetMe g = new ConsoleApplication1.localhost.greetMe();
 g.requestType = "greetme";
 
ConsoleApplication1.localhost.greetMeResponse gr = client.greetMe(g);
Console.WriteLine(gr.responseType);
 

2.4 在菜單上選擇 Build/BuldSolution (或者快捷鍵Ctrl+Shift+B)
你需要保存整個項目, 這樣在 C:/Users/Administrator/Documents/Visual Studio 2005/Projects 目錄下,就可以看到你的項目ConsoleApplication1,
在子目錄下你可以看到有Release和Debug兩個目錄, 執行Release目錄下的ConsoleApplication1.exe, 你就可以看到這樣的輸出了:

Bonjour
Hello greetme

另外WCF提供了一個類似 CXF wsdl2java這樣的工具SvcUtils.exe,這個工具在C:/Program Files/Microsoft SDKs/Windows/v6.0/Bin目錄下.
在工程運行前,可以看看你的wsdl是否可以正常編譯。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章