このセクションでは、Apache Tomcat にデプロイする手順の例を示します。新しいバージョンの SOAtest/Virtualize Server にアップデートする方法については「Apache Tomcat にデプロイされた SOAtest/Virtualize Server のアップグレード」を参照してください。

まず、推奨される方法として、WAR ファイルを Apache Tomcat のルート コンテキストにデプロイする方法を説明します。その次に、より簡単な (しかし推奨はされない) インストール方法を説明します。「ルート以外の」コンテキストを使用する方法は、一部のサーブレット コンテナーでは正常に動作しない可能性があることに注意してください。 

Apache Tomcat デプロイメント サンプル 1 (推奨される方法)

Apache Tomcat の ROOT コンテキスト パスに WAR ファイルをデプロイする方法の一例は、次のとおりです。

  1. <SOAVIRT_HOME> となる新しいフォルダーを作成します。Apache Tomcat の webapps ディレクトリ内以外の任意の場所にフォルダーを作成できます。たとえば、Windows では c:/wars/soavirt などを使用できます。
  2. WAR ファイルのコンテンツを <SOAVIRT_HOME> に展開します。
  3. プラットフォームに合わせた Apache Tomcat Core 7 以降を http://tomcat.apache.org/ からダウンロードします。
  4. ダウンロードした Apache Tomcat を任意の場所 (<TOMCAT_HOME>) に展開します。
  5. <TOMCAT_HOME>/conf/Catalina/localhost/ フォルダーに、空の ROOT.xml ファイルを作成します。
  6. <TOMCAT_HOME>/conf/Catalina/localhost/ROOT.xml ファイルを開き、次のように Context 要素を追加します (<SOAVIRT_HOME> の場所に応じて docBase の絶対パスを適切に修正してください)。

    <Context 
      docBase="c:/wars/soavirt" 
      path="" 
      reloadable="true" 
    />
  7. (任意) HTTPS を介して WAR ファイルをデプロイするには、以下の操作を行って SSL を構成します。
    1. 以下のコマンドを実行して、サーバーの秘密鍵と自己署名証明書を保管するキーストア ファイルを作成します。

      <JAVA_HOME>/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/my/keystore
       
    2. 問い合わせがあったら、パスワードとして changeit を指定します。
    3. "keystore" という新規ファイルが /path/to/my ディレクトリに作成されます。<TOMCAT_HOME>/conf/server.xml 構成ファイルの SSL HTTP/1.1 Connector エントリのコメントを外します。

      <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
      <Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="${user.home}/.keystore" keystorePass="changeit"
           clientAuth="false" sslProtocol="TLS"/>
      keystoreFile attribute value to "/path/to/my/keystore"
  8. <SOAVIRT_HOME>/WEB-INF/config.properties ファイルに Apache Tomcat が使用するポートを指定します (詳細については「サーバーの設定」を参照)。たとえば、server.port.http=8080 または server.port.https=8443 を使用します。config.properties に指定するポートは、Tomcat の構成で指定したポートと一致していなければなりません。
  9. <SOAVIRT_HOME>/WEB-INF/config.properties の config.properties ファイルで適切なライセンスを指定します (詳細については「サーバーの設定」を参照)。
  10. Tomcat を起動します (たとえば <TOMCAT_HOME>/bin から)。
  11. http://localhost:8080/ を参照します (必要に応じてポートを変更してください)。次のようなメッセージが表示された場合、アプリケーションは正しくインストールされています。 

There are no deployments on this server. Cannot respond to this request: /.

デフォルトでは、<SOAVIRT_HOME> に workspace ディレクトリが作成されます。

Apache Tomcat デプロイメント サンプル 2 (簡易的な方法)

この方法は、最初の方法よりも簡単ですが、デフォルトの Tomcat ROOT Web アプリケーションを削除するため、推奨されません。

  1. プラットフォームに合わせた Apache Tomcat Core 7 以降を http://tomcat.apache.org/ からダウンロードします。
  2. ダウンロードした Apache Tomcat を任意の場所 (<TOMCAT_HOME>) に展開します。
  3. webapps ディレクトリから "ROOT" フォルダーを削除します。
  4. “soavirt_<version>.war” ファイルの名前を “ROOT.war” に変更します。
  5. “ROOT.war” を tomcat/webapps/ フォルダーにコピーします。
  6. (任意) HTTPS を介して WAR ファイルをデプロイするには、以下の操作を行って SSL を構成します。
    1. 以下のコマンドを実行して、サーバーの秘密鍵と自己署名証明書を保管するキーストア ファイルを作成します。

      <JAVA_HOME>/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/my/keystore
       
    2. 問い合わせがあったら、パスワードとして changeit を指定します。
    3. "keystore" という新規ファイルが /path/to/my ディレクトリに作成されます。
    4. <TOMCAT_HOME>/conf/server.xml 構成ファイルの SSL HTTP/1.1 Connector エントリのコメントを外します。

      <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
      <Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="${user.home}/.keystore" keystorePass="changeit"
           clientAuth="false" sslProtocol="TLS"/>
      keystoreFile attribute value to "/path/to/my/keystore"
  7. <TOMCAT_HOME>/webapps/ の既存の config.properties ファイルを編集し、Apache Tomcat が使用するポートのエンティティを追加します (詳細については「サーバーの設定」を参照)。たとえば、server.port.http=8080 または server.port.https=8443 を追加します。config.properties に指定するポートは、Tomcat の構成で指定したポートと一致していなければなりません。
  8. <SOAVIRT_HOME>/WEB-INF/config.properties ファイルに適切なライセンスを指定します (詳細については 「サーバーの設定」を参照)。
  9. Tomcat を起動します (たとえば <TOMCAT_HOME>/bin から)。
  10. http://localhost:8080/ を参照します (必要に応じてポートを変更してください)。次のようなメッセージが表示された場合、アプリケーションは正しくインストールされています。

There are no deployments on this server. Cannot respond to this request: /.

デフォルトでは、<TOMCAT_HOME>/webapps/ROOT に workspace ディレクトリが作成されます。

Tomcat の追加構成

インフラストラクチャとプロジェクトの要件によっては、Tomcat サーバーで追加の構成が必要になる場合があります。

URI 文字エンコーディング

SOAtest および Virtualize サーバーは Tomcat の RelaxedPathChars および RelaxedQueryChars プロパティをサポートしますこれらのプロパティを使用すると、URI パスおよび URI クエリー文字列で許可するエンコードされていない文字を指定できます。以下の文字を指定できます。" < > [ \ ] ^ ` { | }

詳細については Tomcat のドキュメントを参照してください: https://tomcat.apache.org/tomcat-8.5-doc/config/http.html

許可する文字を指定しない場合、Tomcat サーバーは URI パスおよびクエリーに 1 つ以上のエンコードされていない文字を含むメッセージを拒否します。 

Tomcat の server.xml ファイルの <Connector> 要素に relaxedPathChars プロパティと relaxedQueryChars プロパティを追加し、許可する文字を指定します。<Connector> 要素が複数ある場合は、プロトコルが HTTP と HTTPS に設定されている要素に属性を追加します。

例:

<Connector
   URIEncoding="UTF-8" allowTrace="true" connectionTimeout="20000"
   enableLookups="true" name="default" port="9080" protocol="HTTP/1.1"
   redirectPort="9443" 
   server="Parasoft Server"
   relaxedPathChars="" < > [ \ ] ^ ` { | }"
   relaxedQueryChars="" < > [ \ ] ^ ` { | }"
/>

カスタム ステータス メッセージの設定

Tomcat でカスタム HTTP ステータス コード メッセージを設定できます。Virtualize のレスポンダーでカスタム HTTP ステータス メッセージを設定する場合、レスポンス ヘッダーでステータス メッセージをカスタマイズできます。Virtualize Server の WAR ファイルをデプロイするときに、conf/catalina.properties ファイルに以下のプロパティを追加します。

org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true

このプロパティ設定の詳細については https://tomcat.apache.org/tomcat-8.5-doc/config/systemprops.html を参照してください。

  • No labels