使用 EGL 建立 Hello World 服務 >
< 上一個課程 | 下一個課程 >

第 1 課:為服務建立 EGL Web 專案

EGL 專案可以用來作為服務、用戶端,或既作為服務,又作為用戶端。 對於這個指導教學,您將建立兩個專案:其中一個用來作為服務,另一個用來作為用戶端。當您可以將所有程式碼都放入單一 EGL 專案時,請使用兩個專案來示範 EGL 如何呼叫另一個應用程式中的服務。

顯示說明文件

  1. 在使用指導教學時,您可能想要選擇使用單獨的工作區,以便不干擾任何其他專案。如果您想要使用不同的工作區,請遵循下列選用步驟:
    1. 在工作台中,按一下檔案 > 切換工作區。 這時會開啟「工作區啟動程式」視窗。
    2. 在工作區欄位中輸入新的工作區位置。
    3. 按一下確定。 這時會使用新的工作區位置重新開啟工作台。您可以隨時切換工作區位置,並可以具有您想要的任意數目工作區位置。
  2. 切換至 Web 視景:
    1. 按一下視窗 > 開啟視景 > 其他。
    2. 從視景清單中,按一下 Web。 如果看不到 Web 視景,請選取全部顯示勾選框。
    3. 按一下確定。
  3. 確保已將 EGL 設定為自動產生部署描述子。 部署描述子包含的資訊說明,如何向其他應用程式提供 EGL 服務,以及 EGL 應用程式將如何尋找由其他應用程式提供的服務。
    1. 在工作台中,按一下視窗 > 喜好設定... > EGL。
    2. 在預設 EGL 專案特性選擇下面,確保已選取建立 EGL 部署描述子。如果尚未選取,請按一下此欄位以選取它。
    3. 按一下確定。
  4. 在工作台中,按一下檔案 > 新建 > 專案。
  5. 在「新建專案」視窗中,展開 EGL 並按一下 EGL 專案。 如果看不到 EGL 專案,請選取顯示所有精靈勾選框。如果仍看不到 EGL 種類或 EGL 專案,則表示您系統上未安裝 EGL。請再次執行產品安裝,並選取 EGL 的其他功能項目。
  6. 按下一步。
  7. 在專案名稱欄位中,將您的專案命名為此名稱:
    EGLService
  8. 在 EGL 專案類型下面,按一下 Web 專案。 這種類型的專案容許您使用網頁使用者介面。
  9. 按下一步。
  10. 在目標執行時期下面,選取 WebSphere Application Server 6.1 版。
  11. 請確保已選取建立新的建置描述子。 建置描述子包含採用另一種語言產生程式的選項。此時,您不需要擔心它們,因為精靈將為您建立適當的建置描述子。 除非您使用 WAS 且先前已變更了用於新增專案至 EAR(企業應用程式資源)的預設設定,否則您不需使用進階設定。如果使用 WAS,則您的 EGLService 專案必須隸屬於 EAR。工作台會記住此設定。
  12. 您可能會看到一個視窗,詢問您是否要切換至 J2EE 視景。如果您看到此視窗,請按一下否。
這時新專案會出現在「專案瀏覽器」視圖中。
用於顯示新專案的「專案瀏覽器」視圖

建立介面以定義服務

EGL 使用術語「介面」的方式與物件導向語言使用該術語的方式相同。對於 EGL,介面會為要遵循的服務定義計劃。 具體而言,介面包含一個以上的函數原型,或函數摘要。這些原型本身不是可使用的函數,但它們會為真實的函數制定計劃。
例如,假設您需要撰寫用於執行數學作業的應用程式(與計算機相似)。您可能先從列出應用程式所需的所有數學作業(例如加法、減法和乘法)開始,而不需要實際撰寫程式碼以執行這些作業。在此情況下,您將為每一個作業命名,並指定每一個作業的輸入及輸出參數,但您不必開始對任何邏輯進行編碼。因此,您將列出 EGL 服務應用程式在介面中所需的函數。此類介面的開頭可能與下面的內容相似:
interface myCalculatorInterface

  //Function to add numbers together 
  function addNumbers(number1 decimal(10,2) in, 
    number2 decimal(10,2) in) returns (decimal(10,2));

  //Function to subtract numbers
  function subtractNumbers(number1 decimal(10,2) in, 
    number2 decimal(10,2) in) returns (decimal(10,2));

end

然後,當您準備好開始對服務進行編碼時,您可以將此介面用作起始點和測試,以確保您遵循計劃。

在很少情況下,您將需要撰寫介面,但一般而言,使用介面來說明服務是良好的程式設計練習:
  • 介面可讓您提前計劃服務,並且如果服務脫離介面,則 EGL 會向您發出警告。
  • 介面會提供服務的簡明摘要,用於解說當未提供服務實作的所有詳細資料時,服務可以執行的作業。
  • 介面可以滿足開發或標準的需求。
  1. 在「專案瀏覽器」視圖中,用滑鼠右鍵按一下 EGLService 專案以選取它。
  2. 按一下新建 > 其他。
  3. 在「新建」視窗中,展開 EGL 並按一下介面。 確保您使用的是 EGL 下面的「介面」項目,而不是 Java 下面的「介面」項目。
  4. 按下一步。
  5. 在「新建 EGL 介面組件」視窗中,請確保您專案的 EGLSource 資料夾顯示在「來源資料夾」欄位中。 此欄位應該顯示 EGLService\EGLSource。
  6. 在套件欄位中,請輸入此名稱:
    interfaces
    EGL 將建立這個新套件,因為您的專案尚未包含具有此名稱的套件。
  7. 在 EGL 原始檔名稱欄位中,為新介面輸入此名稱:
    HelloInterface
    「新建 EGL 介面組件」視窗與此圖片相似:
    「新建 EGL 介面組件」視窗
  8. 按一下完成。 這時會建立新介面,並在 EGL 編輯器中開啟該介面。此介面已包含一個函數原型,如範例所示:
    function functionName(parameterName string in) returns (int);
  9. 請刪除此函數原型。
  10. 在原型範例所在的位置處,請為您自己的函數原型插入此程式碼:
    function SayHello(name string in, city string in) returns (string);
  11. 儲存並關閉檔案。
下面是關於您剛剛輸入之程式碼的一些技術詳細資料:
  • 如上所述,這不是 EGL 邏輯的完整片段。此函數原型會改為說明將位於服務中的函數。 在此情況下,原型會說明名為 SayHello 的函數。
  • 函數接受來自用戶端的兩段輸入,稱之為參數:
    • 人員名稱的字串變數
    • 城市的字串變數
    函數將使用這些參數,將一段輸出放置在一起,以傳回至用戶端。
  • 程式碼 returns (string) 會指示此傳回值及其類型。

介面與此圖片相似:

EGL 介面組件的程式碼

建立服務

  1. 在「專案瀏覽器」視圖中,用滑鼠右鍵按一下您的專案,然後按一下新建 > 服務。
  2. 在「新建 EGL 服務組件」視窗中,請確保您專案的 EGLSource 資料夾顯示在來源資料夾欄位中。 此欄位應該顯示 EGLService\EGLSource。
  3. 在套件欄位中,請輸入此名稱:
    services
  4. 在 EGL 原始檔名稱欄位中,為新服務輸入此名稱:
    HelloService
  5. 在實作介面旁邊,按一下新增。
  6. 在選擇介面欄位中輸入星號 *。 這時,您的介面會顯示在相符組件清單中。
  7. 從相符組件清單中按一下 HelloInterface 以選取它。
  8. 按一下確定。現在,該介面會顯示在實作介面清單中。
  9. 選取建立為 Web 服務勾選框。 如果選取此勾選框,則會新增部署資訊至部署描述子檔案。「新建 EGL 服務組件」視窗與此圖片相似:
    「新建服務」精靈
  10. 按一下完成。 這時會建立新服務,並在 EGL 編輯器中開啟該服務。該服務已包含基於介面中之原型的起始者函數。
  11. 移除註解 // TODO Auto-generated function,並在其位置處,輸入下列程式碼:
    ReturnString string;
    ReturnString = name::", welcome to "::city::"!";
    return (ReturnString);
    此程式碼會建立一個字串變數,並根據參數來為該字串變數指定值,例如,「Jim,歡迎來到芝加哥!」 :: 程式碼是一個連結運算子,它會將單獨字串結合為單一字串。 程式碼與此圖片相似:
    EGL 服務組件的程式碼
  12. 儲存並關閉檔案。
< 上一個課程 | 下一個課程 >