Java與Web Services

本篇文章的目的是教導一位初學者,如何使用Java程式撰寫 XML-RPC Client端的程式。我會使用到 Apache XML-RPC 的 library 來實作 Java 程式,並且連接上一個已經事先寫好的 XML-RPC Server,Server端的程式將以 Python 程式語言來完成。文章內容包含兩部分: 第一部分是 JAVA 程式的撰寫與環境設定,第二部分是 Python Server 程式的撰寫。

前言
參考資料:
   1. 關於 Apache XML-RPC 的說明資料  : http://ws.apache.org/xmlrpc/
   2. 介紹 JAVA Web Service 的技術文件: http://www.wordtracker.com/docs/api/
使用工具:
   1. 我所使用JAVA SDK 的版本是:j2sdk1.4.2_11  下載
   2. 我所使用的函式庫:xmlrpc-3.0rc1-bin.tar.gz    函式庫下載
   3. 我所使用的 Python 程式語言: python 2.4  下載 
 
一、JAVA 程式的撰寫與環境設定
安裝完JAVA SDK(假設安裝路徑為C:\j2sdk1.4.2_11)之後,請解開xmlrpc-3.0rc1-bin.tar.gz,並將 xmlrpc-3.0rc1/dist/xmlrpc-common-3.0rc1.jar 、 xmlrpc-3.0rc1/lib/ws-commons-java5-1.0.1.jar 、 xmlrpc-3.0rc1/lib/ws-commons-util-1.0.1.jar 和 xmlrpc-3.0rc1/lib/xmlrpc-client-3.0rc1.jar 複製到C:\j2sdk1.4.2_11\lib。然後設定你的環境變數,將剛剛複製的 .jar 檔加入 classpath 中。 撰寫java程式如下:
 
//檔名: CrudePing.java
/*
 * 此程式的目的是撰寫Web Service的RPC Client
 * 程式製作者:陳佳揚
 * 使用程式  :java
*/

import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import java.net.URL;
public class CrudePing {
public static void main( String args[] ) throws Exception {
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
//192.168.0.10是 Server 的IP
config.setServerURL(new URL("http://192.168.0.10:5630"));
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
Object[] params = new Object[]{new String("Hello")};
//呼叫 Server 端的 echo 函數,並且將結果存在 result
String result = (String) client.execute( "echo", params );
if ( result != null )
            System.out.println( result );
}
}
}
上方程式存檔之後,編譯產生 CrudePing.class (javac CrudePing.java),如果編譯發生錯誤請檢查lib的路徑與classpath的設定。
 
二、Python Server 程式的撰寫
相信大家應該很熟悉Python Server 程式應該如何撰寫,在這裡我依然使用SimpleXMLRPCServer(python內建的函式庫),程式碼如下:
 
#檔案名稱 server.py
# -*- coding: utf-8 -*-
#############################################################################
#    此程式的目的是撰寫Web Service的RPC Server              
#
#    程式製作者:陳佳揚
#    使用程式:  python
#    版本:3.0
#    完成日期:
#
#############################################################################
import SimpleXMLRPCServer
def echo(data):

return data

server = SimpleXMLRPCServer.SimpleXMLRPCServer(("192.168.0.10", 5630))
server.register_function(echo)
try:

server.serve_forever()

except e:

debug = e


三、執行方式
先啟動 Server ,先執行 server.py ,然後啟動 Client ,執行 java CrudePing ,如果成功出現 Hello 。
 
 
 

    全站熱搜

    CJY0503 發表在 痞客邦 留言(0) 人氣()