建立自訂過濾器,並部署至 Proxy 伺服器

如果您需要讓 Proxy 伺服器執行自訂記載等功能,但是該功能不是透過一般的產品設定提供,您可以為 Proxy 伺服器建立自訂過濾器。

開始之前

  • 針對含有您所建立之過濾器的構件,決定其儲存位置。您可以從本端或遠端檔案系統,匯入這個構件。
  • 您必須知道自訂過濾器安裝所在的 Proxy 伺服器名稱。
  • 您必須啟動管理主控台(如果尚未啟動的話),以用來控制這部 Proxy 伺服器。

關於這項作業

對於透過一般產品設定正常提供的控制權,仍無法控制的功能,過濾器提供選用的輔助控制權。舉例來說,應用程式可以使用記載過濾器機制,來抑制具有特定訊息鍵的所有事件。

程序

  1. 建立自訂過濾器。
    1. 建立 com.ibm.wsspi.proxy.filter.http.HttpDefaultFilter 的延伸類別。
    2. 置換 doFilter 抽象方法,以及選擇性置換 init 和 destroy 方法。如果您置換 init 和 destroy 方法,必須呼叫這些方法的超版本,以保留過濾器生命週期功能。
    3. 撰寫新的 doFilter 方法,以使用 HttpProxyServiceContext 介面。
      這個新的 doFilter 方法可以撰寫成如下:
      • 變更要求或回應的任何相關聯構件,例如:回應本身、回應碼或標頭。
      • 變更要求和回應兩者相關聯的任何構件。
      • 取得要求或回應的相關資訊。
      • 取得要求和回應兩者的相關資訊。
    4. 使用 Proxy 伺服器過濾器的受管理 Bean (MBean)(亦即 proxyFilterMbean),來判斷過濾器的正確序數。
      proxyFilterMbean = AdminControl.queryNames('type=ProxyServerFilterBean,*')
      AdminControl.invoke(proxyFilterMbean, 'viewAllFilters')
      會顯示 Proxy 伺服器中所有過濾器的處理順序。
    5. 建立過濾器描述子檔案 filter-context.xml

      這個檔案用來定義具有這個描述子的所有過濾器。下列範例說明 filter-context.xml 檔的基礎版本。

      在本例中,描述子用來決定對要求和回應兩者執行給定過濾器的位置與時機。過濾器點是決定過濾器的執行位置。在本例中,過濾器是在收到要求之後執行。序數是決定相對於位於相同過濾器點的其他過濾器,該過濾器要何時處理。序數越高,該過濾器在處理佇列中的位置越高。

      <?xml version="1.0" encoding="UTF-8>
      <filter-context xmlns="http://www.ibm.com/2003/FilterContextSchema">
         <description>Proxy Filter Sample descriptor</description>
         <display-name>Proxy Sample Filter</display-name>
      
         <filter>
                <filter-name>HttpRequestFilter</filter-name
                <filter-class>com.ibm.ws.proxy.sample.HttpRequestFilter</filter-class>
                <description>HTTP sample filter to run at REQUEST filter point</description>
                <display-name>HTTP Request Sample</display-name>
                <protocol-name>HTTP</protocol-name>
                      <filter-point>RequestReceived</filter-point>
                <ordinal>1000</ordinal>
         </filter>
      </filter-context>
    6. 將過濾器的已編譯 .class 檔和過濾器描述子,組合成一個 JAR 檔。
  2. 匯入含有自訂過濾器的構件(JAR 檔)。
    1. 在管理主控台中,按一下應用程式 > 應用程式類型 > 資產 > 匯入
    2. 選取本端檔案系統遠端檔案系統,以指出 JAR 檔的所在位置。
    3. 指定 JAR 檔的完整名稱。

      JAR 檔的完整名稱包含該檔案所在的目錄路徑以及檔名。如果您不知道 JAR 檔的完整名稱,可以使用瀏覽功能來尋找檔案。

  3. 建立含有這個構件的商業層次應用程式 (BLA)。
    1. 在管理主控台中,按一下應用程式 > 新建應用程式 > 新建商業層次應用程式
    2. 名稱欄位中,為您正在建立的新應用程式指定一個名稱。

      您也可以在說明欄位中,指定該應用程式的說明。

    3. 按一下套用
  4. 從構件建立一個 BLA 組合單元 (CU)。
    1. 已部署的資產表格中,按一下新增 > 新增資產
    2. 選取您在第一個步驟中所匯入的構件名稱,然後按一下繼續
    3. 視需要變更組合單元設定,然後按一下修改目標
    4. 從可用的部署目標清單中,選取您要在其中部署這個 CU 的 Proxy 伺服器,然後按一下確定

      當您按一下確定時,產品會將組合單元對映至選取的 Proxy 伺服器。

    5. 指定這個組合單元的關係選項。
    6. 按一下完成

    如果要驗證產品已順利新增 CU,請按一下應用程式 > 商業層次應用程式 > application_name。如果產品已順利新增 CU,該 CU 的名稱會顯示在這個 BLA 已部署的資產清單中。

  5. 啟動 Proxy 伺服器。
  6. 啟動含有該過濾器的 BLA。

結果

過濾器會在 Proxy 伺服器上執行。

下一步

使用 Proxy 伺服器過濾器 MBean (proxyFilterMbean),驗證該過濾器已安裝在 Proxy 伺服器上,並且相對於部署在 Proxy 伺服器上的其他過濾器,正以正確順序來處理該過濾器。如果您需要變更這個過濾器的處理順序,請對 proxyFilterMbean MBean 執行 modifyOrdinal 指令。

指出主題類型的圖示 作業主題



時間戳記圖示 前次更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjpx_proxyfilter
檔名:tjpx_proxyfilter.html