プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server 12.1.3 RESTful Webサービスの開発と保護
12c (12.1.3)
E57546-02
  目次へ移動
目次

前
 
次
 

8 RESTful Webサービスとクライアントの監視

この章では、Java API for RESTful Web Services (JAX-RS)を使用して、Representational State Transfer (REST)アーキテクチャ・スタイルに従ったWebLogic Server 12.1.3内のJava EE Webサービスを監視する方法について説明します。

この章の内容は次のとおりです:

RESTful Webサービスの監視について

RESTful Webサービスを監視するには、表8-1に定義されているいずれかのメソッドを使用できます。

表8-1 RESTful Webサービスの監視用メソッド

メソッド 説明

Enterprise Manager Fusion Middleware Control

実行時情報にアクセスし、実行時統計を監視します。詳細は、「Enterprise Manager Fusion Middleware Controlを使用したRESTful Webサービスの監視」を参照してください。

WebLogic Server管理コンソール

実行時情報にアクセスし、実行時統計を監視します。詳細は、「管理コンソールを使用したRESTful Webサービスの監視」を参照してください。

WebLogic Scripting Tool (WLST)

実行時情報にアクセスし、実行時統計を監視します。詳細は、「WLSTを使用したRESTful Webサービスの監視」を参照してください。

ログ・フィルタ

リクエストが処理される方法と、Jersey JAX-RS RIコンポーネントにディスパッチされる方法を監視します。詳細は、「トレース機能の有効化」を参照してください。


表8-1で説明されている監視メソッドに加えて、Jersey 2.5.1 JAX-RS 2.0参照実装(RI)には、イベント・リスナーおよび統計の監視のサポートなど、他にも監視機能があります。詳細は、『Jersey 2.5.1 User Guide』「Monitoring Jersey Applications」を参照してください。

Enterprise Manager Fusion Middleware Controlを使用したRESTful Webサービスの監視

Enterprise Manager Fusion Middleware Controlを使用すると、RESTfulアプリケーションおよびリソースの統計(エラー数、呼出し回数、実行回数など)を監視できます。詳細は、『Webサービスの管理』のWebサービスの監視に関する項を参照してください。

管理コンソールを使用したRESTful Webサービスの監視

WebLogic Server管理コンソールを使用すると、RESTfulアプリケーションおよびリソースの統計(エラー数、呼出し回数、実行回数など)を監視できます。

WebLogic Server管理コンソールを使用してデプロイ済のRESTful Webサービスを監視するには、次の手順を実行します。

  1. 次のURLを使用して、ブラウザでWebLogic Server管理コンソールを呼び出します。

    http://[host]:[port]/console
    

    各文字列の説明:

    • host - WebLogic Serverが動作しているコンピュータの名前。

    • port - WebLogic Serverがリスニングしているポート番号(デフォルト値は7001です)。

  2. Oracle WebLogic Server管理コンソール・オンライン・ヘルプRESTful Webサービスの監視に関する項で説明されている手順に従います。

WLSTを使用したRESTful Webサービスの監視

WebLogic ServerではランタイムMBean (表8-2に定義されたものを含む)が提供され、実行時情報を取得してRESTful Webサービス・アプリケーションの実行時統計を監視することができます。

表8-2 RESTful Webサービスの監視用ランタイムMBean

ランタイムMBean 説明

JaxRsApplication

RESTful Webサービス・アプリケーションの監視情報を表示します。詳細は、WebLogic Server MBean リファレンスのJaxRsApplicationRuntimeBeanに関する項を参照してください。

ResourceConfig

RESTful Webサービス・アプリケーションのリソース構成に関する監視情報を表示します。詳細は、WebLogic Server MBean リファレンスのJaxRsResourceConfigTypeRuntimeBeanに関する項を参照してください。

RootResources

RESTful Webサービスのリソースに関する監視情報を表示します。コンテナにより管理されるすべてのオブジェクト(EJBなど)はアプリケーション・スコープを含みます。その他のすべてのリソースはデフォルトでリクエスト・スコープを含みます。詳細は、WebLogic Server MBeanリファレンスのJaxRsResourceRuntimeBeanに関する項を参照してください。

Servlet

RESTful Webサービス・アプリケーションをホストするサーブレットの監視情報を表示します。詳細は、WebLogic Server MBeanリファレンスのServletRuntimeMBeanに関する項を参照してください。


WLSTを使用してRESTful Webサービスを監視するには、次のプロシージャの手順を実行します。

このプロシージャでは、手順の例により、WebLogic Serverのサンプル・サーバーとともに提供されるRESTful Webサービス・サンプルの監視方法を示します。『Oracle WebLogic Serverの理解』のサンプル・アプリケーションとコード例に関する項を参照してください。

  1. 『WebLogic Scripting Toolの理解』のWLSTの呼出しに関する項の説明に従って、WLSTを呼び出します。

    以下に例を示します。

    c:\Oracle\Middleware\wlserver\common\bin> wlst
    
  2. 『WebLogic Server WLSTコマンド・リファレンス』のconnectに関する項の説明に従って、管理サーバー・インスタンスに接続します。

    以下に例を示します。

    wls:/offline> connect('weblogic','password','t3://localhost:8001') 
    
  3. 『WebLogic Server WLSTコマンド・リファレンス』のserverRuntimeに関する項の説明に従って、サーバー・ランタイムMBeanに移動します。

    以下に例を示します。

    wls:/wl_server/serverConfig> serverRuntime()
    Location changed to serverRuntime tree. This is a read-only tree
    with ServerRuntimeMBean as the root.
    For more help, use help('serverRuntime')
    wls:/wl_server/serverRuntime> 
    
  4. Webアプリケーション・コンポーネント・ランタイムMBeanに移動します。

    たとえば、jaxrsという名前のアプリケーションのランタイムMBeanに移動するには、次を実行します。

    wls:/wl_server/serverRuntime> cd('ApplicationRuntimes/jaxrs')
    wls:/wl_server/serverRuntime/ApplicationRuntimes/jaxrs> cd('ComponentRuntimes')
    wls:/wl_server/serverRuntime/ApplicationRuntimes/jaxrs/ComponentRuntimes> cd('examplesServer_/jaxrs')
    
  5. RESTful Webサービス・サーブレットのアプリケーション・ランタイムMBeanに移動します。

    以下に例を示します。

    wls:/wl_server/serverRuntime/ApplicationRuntimes/jaxrs/ComponentRuntimes/examplesServer_/jaxrs> cd('JaxRsApplications/RestServlet')
    
  6. RESTful Webサービス・アプリケーションについて表示される監視情報を確認します。詳細は、WebLogic Server MBean リファレンスのJaxRsApplicationRuntimeBeanに関する項を参照してください。

    以下に例を示します。

    wls:/wl_server/serverRuntime/ApplicationRuntimes/jaxrs/ComponentRuntimes/example
    sServer_/jaxrs/JaxRsApplications/RestServlet> ls()
    dr--   ResourceConfig
    dr--   RootResources
    dr--   Servlet
     
    -r--   ErrorCount                                   0
    -r--   ExecutionTimeAverage                         0
    -r--   ExecutionTimeHigh                            0
    -r--   ExecutionTimeLow                             0
    -r--   ExecutionTimeTotal                           0
    -r--   HttpMethodCounts                             {}
    -r--   InvocationCount                              0
    -r--   LastErrorDetails                             null
    -r--   LastErrorMapper                              null
    -r--   LastErrorTime                                0
    -r--   LastHttpMethod                               null
    -r--   LastInvocationTime                           0
    -r--   LastResponseCode                             -1
    -r--   Name                                         RestServlet
    -r--   ResponseCodeCounts                           {}
    -r--   StartTime                                    1321907929703
    -r--   Type                                         JaxRsApplicationRuntime
     
    -r-x   preDeregister                                Void :
    
    wls:/wl_server/serverRuntime/ApplicationRuntimes/jaxrs/ComponentRuntimes/example
    sServer_/jaxrs/JaxRsApplications/RestServlet>
    
  7. 次のいずれかのランタイムMBeanに移動して、追加の監視情報を表示します。MBeanに関する詳細は、表8-2またはWebLogic Server MBean リファレンスを参照してください。

    • ResourceConfig

    • RootResources

    • Servlet

  8. 『WebLogic Scripting Toolの理解』のWLSTの終了に関する項の説明に従って、WLSTを終了します。

    以下に例を示します。

    wls:/wl_server/serverRuntime/ApplicationRuntimes/jaxrs/ComponentRuntimes/example
    sServer_/jaxrs/JaxRsApplications/RestServlet> exit()
    Exiting WebLogic Scripting Tool ...
    c:\>
    

トレース機能の有効化

Jerseyトレース機能は、リクエストが処理されJersey JAX-RS RIコンポーネントにディスパッチされる状況を説明する有用な情報を提供します。トレース・メッセージは発生順に出力されるので、その番号はトレース順序を再構成するのに役立ちます。

次の各項では、使用しているJAX-RS参照実装(RI)がJersey 1.18かJersey 2.5.1かに基づき、トレース機能を有効にする方法について説明します。

Jersey 1.18 (JAX-RS 1.1 RI)を使用したトレース機能の有効化

Jersey 1.18 (JAX-RS 1.1 RI)を使用すると、サーバー全体またはリクエストごとにトレース機能を有効にできます。次の各項を参照してください。

次にトレース・メッセージの例を示します。このメッセージは、リクエスト・パスと、一致する最初の正規表現のセットを、左から右の順序で示します。

例8-1 トレース・メッセージの例

Trace 001:
X-Jersey-Trace-001  match path "/items/3/tracks/2/" -> "/application\\.wadl(/.\*)?", "/happy(/.\*)?", "(/.\*)?"

サーバー全体のトレース機能の有効化方法

サーブレットとパッケージ化されたRESTful Webサービス・アプリケーション(「Jersey 1.18 (JAX-RS 1.1 RI)を使用したサーブレットとのパッケージ化」を参照)に対してサーバー全体のトレース機能を有効にでき、web.xmlファイルには次の要素が存在します。

  • 次のように定義されたサーブレットクラス。

    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    
  • Trueに設定された次のいずれかの<init-param>

    • com.sun.jersey.config.feature.TracePerRequest

    • com.sun.jersey.config.feature.Trace

サーバー全体のトレース機能を有効にするには:

  • アプリケーションとパッケージ化されたweb.xmlデプロイメント記述子を更新し、次の<init-param>要素を追加します。

    <init-param>
        <param-name>com.sun.jersey.config.feature.Trace</param-name>
        <param-value>true</param-value>
    </init-param>
    

    <init-param要素の詳細は、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のサーブレットに関する項を参照してください。

  • com.sun.jersey.api.core.ResourceConfig.FEATURE_TRACEプロパティを有効化します。詳細は、『jersey-bundle 1.18 API』JavadocのFEATURE_TRACEフィールドの説明を参照してください。

リクエストごとのトレース機能の有効化方法

サーブレットとパッケージ化されたRESTful Webサービス・アプリケーション(「Jersey 1.18 (JAX-RS 1.1 RI)を使用したサーブレットとのパッケージ化」を参照)に対してリクエストごとのトレース機能を有効にでき、web.xmlファイルには次の要素が存在します。

  • 次のように定義されたサーブレットクラス。

    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    
  • Trueに設定された次のいずれかの<init-param>パラメータ。

    • com.sun.jersey.config.feature.TracePerRequest

    • com.sun.jersey.config.feature.Trace

リクエストごとのトレースでは、リクエスト・ヘッダーがX-Jersey-Trace-Acceptという名前で存在する場合に、トレース・メッセージが出力されます。

トレース・メッセージは主にX-Jersey-Trace-XXX形式のヘッダー名のレスポンス・ヘッダーとして出力され、このXXXはトレース・メッセージ番号に対応する整数値で、ヘッダー値がトレース・メッセージです。メッセージが長すぎる場合など、レスポンス・ヘッダーにトレース・メッセージを含むことができない場合、トレース・メッセージがサーバーのログに記録されることがあります。

リクエストごとのトレース機能を有効にするには:

  • アプリケーションとパッケージ化されたweb.xmlデプロイメント記述子を更新し、次の<init-param>要素を追加します。

    <init-param>
        <param-name>com.sun.jersey.config.feature.TracePerRequest</param-name>
        <param-value>true</param-value>
    </init-param>
    

    <init-param要素の詳細は、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のサーブレットに関する項を参照してください。

  • Ecom.sun.jersey.api.core.ResourceConfig.FEATURE_TRACE_PER_REQUESTプロパティを有効化します。詳細は、『jersey-bundle 1.18 API』FEATURE_TRACE_PER_REQUESTフィールドの説明を参照してください。

Jersey 2.5.1 (JAX-RS 2.0 RI)を使用したトレース機能の有効化

有効の場合、Jersey 2.5.1トレース機能により、JAX-RSサーバー側リクエスト処理パイプラインのすべてのコンポーネントから個々のリクエストについて有用な情報が収集されます。収集された情報は、JerseyまたはJAX-RSアプリケーションをトラブルシューティングするために、きわめて重要な詳細情報となることがあります。

単一リクエストのトレース情報は、レスポンスのHTTPヘッダーでリクエスト元のクライアントに返されます。さらに、その情報は専用のJavaロガー・インスタンスを使用してサーバー側で記録されます。

Jersey 2.5.1トレース機能の有効化の詳細は、『Jersey 2.5.1 User Guide』「Tracing Support」を参照してください。