Windows XP下WS-core4.0.4Math實例調試(1)
最近在學習網格,還是感覺很抽象,所以想自己做個例子來加深理解.花了兩天時間終于搞好了.
首先,這里有詳細的步驟,不過手冊里面也有點點小錯誤http://gdp.globus.org/gt4-tutorial/multiplehtml/ch03s01.html.環境配置:ws-core-4.0.4,apache-ant-1.6.5,jdk1.5.0_09.globus-build-service-gt4_0.2.5.還有就是要運行globus-build-service.py需要python環境支持.所以得安裝python.要編寫、部署這樣一個Web Service需要一下5個簡單的步驟:
1.通過編寫WSDL文件,定義服務的接口.
2.通過編寫Java代碼,實現上述接口定義的服務
3.編寫WSDD部署描述符和JNDI.
4.使用ant編譯并形成GAR(Globus ARchive)文件
5.通過GT4自帶的工具部署服務
JDK,ANT,TOMCAT的安裝不用多說,可選:安裝補丁,直接把tomcat-native-1.1.2.tar.gz拷貝到bin\下,備份原來的tomcat-native.tar.gz,
然后把tomcat-native-1.1.2.tar.gz改名tomcat-native.tar.gz(不過我沒裝)
注意:axis-bin-1_4.zip
解壓,把解壓出來的axix目錄復制到tomcat目錄下的webapps目錄下;
將axis/WEB-INF/lib目錄下的文件復制到tomcat目錄下的common/lib目錄下;
重新啟動tomcat;
測試:在瀏覽器輸入http://localhost:8080/axis/happyaxis.jsp;如果能訪問表示設置成功。
下面,我們分別介紹以上五個步驟:
step1定義服務接口
通過編寫WSDL文件,來定義我們提供服務的接口。這樣,客戶端通過解析WSDL文件,從而了解服務的具體定義和調用情況。
文件的代碼:(Math.wsdl)可以從手冊里拷貝.
該文件被保存在EXAMPLES_DIR\schema\examples\MathService_instance目錄下
其中EXAMPLES_DIR=C:\gt4.
2 建C:\gt4\namespace2package.mappings
手冊上是說的namespace2package..properties文件,但每次在編譯的時侯,都是映射后的命名空間找不著,改成.mappings就OK了.這里注意每條記錄只能占一行,而且"http\://"那一"\"不能亂刪.
step2 寫服務實現類
1 MathQNames.java
內容從手冊上拷,文件建在C:\gt4\org\globus\examples\services\core\first\impl\MathQNames.java處.
2 MathService.java
內容從手冊上拷,文件建在C:\gt4\org\globus\examples\services\core\first\impl\MathService.java處.
3建WSDD和JNDI部署文件
1 C:/gt4/org/globus/examples/services/core/first/deploy-server.wsdd;
2 C:/gt4/org/globus/examples/services/core/first/deploy-jndi-config.xml;
step4 生成gar文件
1 將下載的globus-build-service-gt4_0.2.5里面幾個文件先拷貝到C:\gt4下
2 在C:\gt4下運行命令:
globus-build-service.py -d org/globus/examples/services/core/first/ -s schema/examples/MathService_instance/Math.wsdl 從而生成build文件夾.
如果不成功,估計要先運行C:\gt4\etc\globus-devel-env.bat;(主要配置classpath,將c:\gt4\lib\*.jar,引入到classpath,),遇到
成功的話,生成d:\gt4\org_globus_examples_services_core_first.gar.
step 5 部署
1 c:\gt4下運行:
globus-deploy-gar c:/gt4/org_globus_examples_services_core_first.gar(需要python支持)
這樣,我們的服務就算發布了,可以運行給外面的人用了.但是它得在那個容器里面,可以直接用GT4帶的java WS Core container發布,運行如下命令
2 運行globus-start-container -nosec
如果看到你自己的MathServices服務,就說明成功了.
這樣你不能通過IE看你的服務,如果要的話,我們可以把他發布到tomcat里面去,你得裝Tomcat,然后用以下明明發布到tomcat里面去,ant -f share/globus_wsrf_common/tomcat/tomcat.xml deploySecureTomcat -Dtomcat.dir="C:\Program Files\Apache Software Foundation\Tomcat 5.0"(最后那個目錄為你的tomcat的目錄)
(注意)重新啟動tomcat,輸入http://localhost:8080/wsrf/services你就可以看到你服務了!
客戶端的開發,有一個問題要注意(有兩處)
System.out.println("Current value:" + math.getValue(new GetValueRP()));
math.getValue修改為math.getValueRP,估計這是作者筆誤.
然后是客戶端編譯命令:
javac -classpath ./build/stubs/classes/;"%CLASSPATH%" org/globus/examples/clients/MathService_instance/Client.java
最后運行檢驗:java -classpath ./build/stubs/classes/;"%CLASSPATH%" org.globus.examples.clients.MathService_instance.Client http://127.0.0.1:8080/wsrf/services/examples/core/first/MathService
出現期望的數字就說明成功了.
來自:http://blog.sina.com.cn/u/49ccf52b010008b5
posted on 2007-07-10 11:45 狼愛上貍 閱讀(1924) 評論(6) 編輯 收藏 所屬分類: Globus