Hitachi

uCosminexus Application Runtime for Spring Boot ユーザーズガイド


15.2.2 WARデプロイ形式のセットアップ方法

次の手順でセットアップしてください。ただし,手順3はSpring Bootが生成したjavax.sql.DataSourceクラスのBeanを使用する場合は実施しないでください。

なお,server.xmlについては「18.5 server.xml(Tomcatのサーバ設定ファイル)」を,context.xmlについては「18.6 context.xml(Tomcatのコンテキスト設定ファイル)」を参照してください。

  1. Serverタグの子要素に設定を追記する。

    ${CATALINA_BASE}/conf/server.xml(Tomcatのサーバ設定ファイル)に記載されているServerタグの子要素に,次の内容を追記してください。Serverタグの子要素のほかのタグよりも前に記載することを推奨します。

    <Listener className="com.cosminexus.appruntime.tomcat.tracer.ServerComponentHandler" />
  2. Engineタグの子要素に設定を追記する。

    ${CATALINA_BASE}/conf/server.xml(Tomcatのサーバ設定ファイル)に記載されているEngineタグの子要素に,次の内容を追記してください。Engineタグの子要素のほかのタグよりも前に記載することを推奨します。

    <Valve  className="com.cosminexus.appruntime.tomcat.tracer.RequestTraceValve" />
  3. ResourceタグのjdbcInterceptors属性に設定を追記する。

    Spring Bootが生成したjavax.sql.DataSourceクラスのBeanを使用する場合:

    手順4に進んでください。次のとおりResourceタグのjdbcInterceptors属性に設定を追記すると,データベースアクセスのトレースが二重に出力されるおそれがあるためです。

    Spring Bootが生成したjavax.sql.DataSourceクラスのBeanを使用しないで,Tomcat JDBC Connection Poolを使用する場合:

    次のファイルに記載されているResourceタグのjdbcInterceptors属性にcom.cosminexus.appruntime.tomcat.tracer.JdbcTraceHandlerを追記してください。ただし,Resourceタグのfactory属性がorg.apache.tomcat.jdbc.pool.DataSourceFactoryの場合に限ります。

    • ${CATALINA_BASE}/conf/server.xml(Tomcatのサーバ設定ファイル)

    • ${CATALINA_BASE}/conf/context.xml(Tomcatのコンテキスト設定ファイル)

    設定を追記しない場合は,データベースアクセスのトレースを取得できません。

    設定を追記する例を次に示します。太字が追記する個所です。

    <Resource
      ・・・省略・・・
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
      ・・・省略・・・
      jdbcInterceptors="com.cosminexus.appruntime.tomcat.tracer.JdbcTraceHandler"
      ・・・省略・・・
      />
  4. Contextタグの子要素に設定を追記する。

    ${CATALINA_BASE}/conf/context.xml(Tomcatのコンテキスト設定ファイル)に記載されているContextタグの子要素に,次の内容を追記してください。Contextタグの子要素のほかタグとの記載順序は問いません。

    <Loader loaderClass="com.cosminexus.appruntime.tomcat.classloader. WebappDirectoryClassLoader" />
  5. ユーザプログラムを変更する。

    Eclipse Jersey 2.x 系を使用する場合:

    ユーザプログラムの変更は不要です。手順6に進んでください。

    Eclipse Jersey以外のJAX-RSクライアントを使用する場合:

    ユーザプログラム中のClientオブジェクトにJaxrsClientTraceFeatureを登録する必要があります。登録しない場合,JAX-RSクライアントのトレースを取得できません。登録する例を次に示します。

    import javax.ws.rs.client.Client;
     
    Client client = <Clientオブジェクトの取得>;
    try {
        client.register(Class.forName("com.cosminexus.appruntime.common.tracer.JaxrsClientTraceFeature")); // JaxrsClientTraceFeatureの登録
    } catch (ClassNotFoundException e) {
        // クラスが見つからなかった場合の例外処理
    }
  6. 必要に応じてconfig.properties(本製品の設定ファイル)のプロパティを設定する。

    config.properties(本製品の設定ファイル)については,「18.2 config.properties(本製品の設定ファイル)」を参照してください。