Address Book - 配置和執行


配置範例
執行範例

AddressBook 用戶端有兩種,一種是 Java 2 Standard Edition (J2SE) 版本,另一種是 Java 2 Enterprise Edition (J2EE) 儲存器管理版本。如果您要完全利用 J2EE 儲存器服務的優點,請執行 J2EE 版本。

配置範例

若要完成此範例的配置,請在伺服器上部署 JAX-RPC Web 服務範例應用程式。如果尚未部署範例應用程式,請參閱重新建置和部署 WebServicesSamples.ear的指示。

執行範例

請確認先啟動伺服器,之後再執行用戶端。

AddressBook 用戶端有兩種,一種是 J2SE 外部版本,另一種是 Java 2 Enterprise Edition (J2EE) 儲存器管理版本。每一個用戶端都有四種 AddressBook Web 服務 Bean 的變體部署在伺服器上。AddressBook Web 服務 Bean 會傳回固定值,而且不需要網際網路連線就可以執行。

執行 J2SE 簡式 AddressBook 用戶端
執行 J2EE 應用程式 AddressBook 用戶端

執行 J2SE 簡式 AddressBook 用戶端

J2SE AddressBook 用戶端所示範的是查詢 Web 服務 AddressBook Bean,從 Web 服務取得位址。您可以在 profile_root/samples/src/WebServicesSamples/Clients/simpleClients/samples/address 目錄中,找到它的程式碼。

當您執行 AddressBookClient 時,AddressBook.wsdl 檔必須位於現行目錄中。 從 simpleClients.jar 檔中解壓縮 AddressBook.wsdl 檔,並將它放在執行本範例所在的目錄。 您可以在 install_root/samples/lib/WebServicesSamples 目錄中找到 simpleClients.jar 檔。

J2SE 用戶端在每一個部署在伺服器上的 AddressBook Web 服務 Bean,都會迴圈兩次。在進行第一個迴圈時,用戶端是呼叫 getPort 方法,取得範例應用程式每一個 Bean 的專屬埠。用戶端會在每一個埠上呼叫 getAddressFromName 方法。第二個迴圈則從其中任何一個埠開始,然後一一進行迴圈,將其端點位址設於四個可能端點的每一個。用戶端會在每一個埠上呼叫 getAddressFromName 方法。

如果需要呼叫 WebSphere 用戶端的其他一般指示,請參閱 InfoCenter 中關於開發小型應用程式用戶端程式碼的主題。

如果要從 WebSphere Application Server 執行 J2SE 簡式 AddressBook 用戶端,請根據作業系統來執行下列步驟:

  1. 啟動伺服器。
  2. 開啟命令提示字元。
  3. 發出下列指令:

    Windows 平台:

    cd profile_root\bin
    setupCmdLine
    cd install_root\bin
    setupCmdLine

    Linux、UNIX 和 z/OS 平台:

    cd profile_root/bin
    . ./setupCmdLine.sh
    cd install_root/bin
    . ./setupCmdLine.sh

    iSeries 平台:

    cd profile_root/bin
    . ./setupCmdLine
    cd install_root/bin
    . ./setupCmdLine

  4. 切換至包含 AddressBook.wsdl 檔的目錄。
  5. 發出下列指令:

    Windows 平台:

    "%JAVA_HOME%\bin\java" %WAS_LOGGING% -classpath "%WAS_CLASSPATH%;%WAS_HOME%\samples\lib\WebServicesSamples\simpleClients.jar;%WAS_HOME%\runtimes\com.ibm.ws.webservices.thinclient_7.0.0.jar" samples.address.AddressBookClient [<host_name> <port_number>]

    Linux、UNIX 和 z/OS 平台:

    "$JAVA_HOME/bin/java" $WAS_LOGGING -classpath "$CLASSPATH:$WAS_CLASSPATH:$WAS_HOME/samples/lib/WebServicesSamples/simpleClients.jar:$WAS_HOME/runtimes/com.ibm.ws.webservices.thinclient_7.0.0.jar" samples.address.AddressBookClient [<host_name> <port_number>]

    iSeries 平台:

    java $JAVA_PARM -classpath "$CLASSPATH:$WAS_CLASSPATH:$WAS_HOME/samples/lib/WebServicesSamples/simpleClients.jar:$WAS_HOME/runtimes/com.ibm.ws.webservices.thinclient_7.0.0.jar" samples.address.AddressBookClient [<host_name> <port_number>]

    其中:
    <host_name> 是服務端點位址的主機名稱。預設主機名稱是 localhost
    <port_number> 是服務端點位址的埠號。預設埠號是 9080

    下列範例將示範順利執行 AddressBook 用戶端的過程:

    
    C:\>"%JAVA_HOME%\bin\java" %WAS_LOGGING% -classpath "%WAS_CLASSPATH%;%WAS_HOME%\samples\lib\WebServicesSamples\simpleClients.jar;%WAS_HOME%\runtimes\com.ibm.ws.webservices.thinclient_7.0.0.jar" samples.address.AddressBookClient
    >> 利用埠 AddressBookW2JE 來查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	1 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >> 利用埠 AddressBookJ2WE 來查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	2 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >> 利用埠 AddressBookJ2WB 來查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	3 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >> 利用埠 AddressBookW2JB 來查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	4 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >>
    >> 取得埠 AddressBookJ2WB
    >> 將埠 AddressBookJ2WB 的端點設定到 http://localhost:9080/AddressBookW2JE/services/AddressBook
    >> 查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	1 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >>  將埠 AddressBookJ2WB 的端點設定到 http://localhost:9080/AddressBookJ2WE/services/AddressBook
    >> 查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	2 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >> 將埠 AddressBookJ2WB 的端點設定到 http://localhost:9080/AddressBookJ2WB/services/AddressBook
    >> 查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	3 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >> 將埠 AddressBookJ2WB 的端點設定到 http://localhost:9080/AddressBookW2JB/services/AddressBook
    >> 查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	4 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    
    

執行 J2EE 應用程式 AddressBook 用戶端

J2EE 應用程式 AddressBook 用戶端很類似 J2SE 簡式 AddressBook 用戶端。 它可以存取同樣的 AddressBook Web 服務 Bean,不過卻是利用 launchClient 指令, 從 J2EE 應用程式用戶端儲存器存取。

J2EE 用戶端會在每一個部署在伺服器上的 AddressBook Web 服務 Bean 進行迴圈。這個用戶端是利用 Java 命名和目錄介面 (JNDI) lookup 指令,來尋找 AddressBook 服務,並且發出 get port 呼叫,取得每一個 AddressBook Bean 的專屬埠。用戶端會在每一個埠上呼叫 getAddressFromName 方法。

在下列步驟中,install_root 變數代表 WebSphere 安裝根目錄。

如果要從 WebSphere Application Server 執行 J2EE 應用程式 AddressBook 用戶端,請根據作業系統來執行下列步驟:

  1. 啟動伺服器。
  2. 開啟命令提示字元。
  3. 輸入下列指令:

    Windows 平台:

    cd <profile_root>\bin
    setupCmdLine

    Linux、UNIX 和 z/OS 平台:

    cd <profile_root>/bin
    . ./setupCmdLine.sh

    iSeries 平台:

    cd <profile_root>/bin
    . ./setupCmdLine

    其中 <profile_root> 代表設定檔安裝目錄。
  4. 將目錄切換至 install_root/samples/lib/WebServicesSamples
    其中:
    install_root 是 WebSphere Application Server 安裝根目錄,如果重新建置範例的話,就是設定檔安裝根目錄。
  5. install_root 換成 WebSphere 安裝根目錄,然後發出下述指令:

    Windows 平台:

    install_root\bin\launchClient ApplicationClients.ear -CCjar=AddressBookClient.jar [<host_name> <port_number>]

    Linux、UNIX 和 z/OS 平台:

    install_root/bin/launchClient.sh ApplicationClients.ear -CCjar=AddressBookClient.jar [<host_name> <port_number>]

    iSeries 平台:

    install_root/bin/launchClient ApplicationClients.ear -CCjar=AddressBookClient.jar [<host_name> <port_number>]

    其中:
    <host_name> 是服務端點位址的主機名稱。預設主機名稱是 localhost
    <port_number> 是服務端點位址的埠號。預設埠號是 9080


    下列範例將示範順利執行 AddressBook 用戶端的過程:

    
    C:\WebSphere\AppServer\samples>\WebSphere\AppServer\bin\launchClient \WebSphere\AppServer\samples\lib\WebServicesSamples\ApplicationClients.ear -CCjar=AddressBookClient.jar IBM WebSphere Application Server 7.0 版
    J2EE Application Client 工具
    Copyright IBM Corp., 1997-2008
    WSCL0012I: 正在處理指令行引數。
    WSCL0013I: 正在起始設定 J2EE Application Client 環境。
    [3/29/06 14:47:51:062 CST] 0000000a  W UOW=null 來源=com.ibm.ws.ssl.config.SSLConfig 組織=IBM 產品=WebSphere 元件=Application Server 執行緒=[P=269328:O=0:CT]
              CWPKI0041W : 一或多個金鑰儲存庫正在使用預設密碼。
    WSCL0035I: 已完成 J2EE Application Client 環境的起始設定。
    WSCL0014I: 正在呼叫 Application Client 類別 com.ibm.websphere.samples.webservices.addr.AddressBookClient
    >> 利用埠 AddressBookW2JE 來查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	1 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >> 利用埠 AddressBookJ2WE 來查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	2 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >> 利用埠 AddressBookJ2WB 來查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	3 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    >> 利用埠 AddressBookW2JB 來查詢 'Purdue Boilermaker' 的地址
    >> 回信地址:
    	4 University Drive
    	West Lafayette, IN 47907
    	電話:(765) 555-4900
    
    

您可以進一步瞭解,用戶端和應用程式如何參照 Address Book TechNotes 以及檢視 Java 程式碼來進行工作。