このセクションでは、Apache Tomcat にデプロイする手順の例を示します。新しいバージョンの SOAtest/Virtualize Server にアップデートする方法については「Apache Tomcat にデプロイされた SOAtest/Virtualize Server のアップグレード」を参照してください。
まず、推奨される方法として、WAR ファイルを Apache Tomcat のルート コンテキストにデプロイする方法を説明します。その次に、より簡単な (しかし推奨はされない) インストール方法を説明します。「ルート以外の」コンテキストを使用する方法は、一部のサーブレット コンテナーでは正常に動作しない可能性があることに注意してください。
Apache Tomcat デプロイメント サンプル 1 (推奨される方法)
Apache Tomcat の ROOT コンテキスト パスに WAR ファイルをデプロイする方法の一例は、次のとおりです。
- <SOAVIRT_HOME> となる新しいフォルダーを作成します。Apache Tomcat の webapps ディレクトリ内以外の任意の場所にフォルダーを作成できます。たとえば、Windows では c:/wars/soavirt などを使用できます。
- WAR ファイルのコンテンツを <SOAVIRT_HOME> に展開します。
- プラットフォームに合わせた Apache Tomcat Core 7 以降を http://tomcat.apache.org/ からダウンロードします。
- ダウンロードした Apache Tomcat を任意の場所 (<TOMCAT_HOME>) に展開します。
- <TOMCAT_HOME>/conf/Catalina/localhost/ フォルダーに、空の ROOT.xml ファイルを作成します。
<TOMCAT_HOME>/conf/Catalina/localhost/ROOT.xml ファイルを開き、次のように Context 要素を追加します (<SOAVIRT_HOME> の場所に応じて docBase の絶対パスを適切に修正してください)。
<Context docBase="c:/wars/soavirt" path="" reloadable="true" />
- (任意) HTTPS を介して WAR ファイルをデプロイするには、以下の操作を行って SSL を構成します。
- 以下のコマンドを実行して、サーバーの秘密鍵と自己署名証明書を保管するキーストア ファイルを作成します。
<JAVA_HOME>/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/soavirt.keystore
- 問い合わせがあったら、すべてのパスワードに changeit を指定します。キーストアと <tomcat> エイリアスのパスワードは同じにすることをお勧めします。
指定したディレクトリに
soavirt.keystore
ファイルが作成されます。<TOMCAT_HOME>/conf/server.xml 構成ファイルの SSL HTTP/1.1 Connector エントリのコメントを外し、
keystoreFile
属性値を更新します。<!-- 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="/path/to/soavirt.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLS"/>
- 以下のコマンドを実行して、サーバーの秘密鍵と自己署名証明書を保管するキーストア ファイルを作成します。
- <SOAVIRT_HOME>/WEB-INF/config.properties ファイルに Apache Tomcat が使用するポートを指定します (詳細については「サーバーの設定」を参照)。たとえば、
server.port.http=8080
またはserver.port.https=8443
を使用します。config.properties に指定するポートは、Tomcat の構成で指定したポートと一致していなければなりません。 - <SOAVIRT_HOME>/WEB-INF/config.properties の config.properties ファイルで適切なライセンスを指定します (詳細については「サーバーの設定」を参照)。
- Tomcat を起動します (たとえば <TOMCAT_HOME>/bin から)。
- http://localhost:8080/ を参照します (必要に応じてポートを変更してください)。次のようなメッセージが表示された場合、アプリケーションは正しくインストールされています。
There are no deployments on this server.Cannot respond to this request: /.
デフォルトでは、<SOAVIRT_HOME> に workspace ディレクトリが作成されます。
Apache Tomcat デプロイメント サンプル 2 (簡易的な方法)
この方法は、最初の方法よりも簡単ですが、デフォルトの Tomcat ROOT Web アプリケーションを削除するため、推奨されません。
- プラットフォームに合わせた Apache Tomcat Core 7 以降を http://tomcat.apache.org/ からダウンロードします。
- ダウンロードした Apache Tomcat を任意の場所 (<TOMCAT_HOME>) に展開します。
- webapps ディレクトリから "ROOT" フォルダーを削除します。
- “soavirt_<version>.war” ファイルの名前を “ROOT.war” に変更します。
- “ROOT.war” を tomcat/webapps/ フォルダーにコピーします。
- (任意) HTTPS を介して WAR ファイルをデプロイするには、以下の操作を行って SSL を構成します。
- 以下のコマンドを実行して、サーバーの秘密鍵と自己署名証明書を保管するキーストア ファイルを作成します。
<JAVA_HOME>/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/soavirt.keystore
- 問い合わせがあったら、すべてのパスワードに changeit を指定します。キーストアと <tomcat> エイリアスのパスワードは同じにすることをお勧めします。
- 指定したディレクトリに
soavirt.keystore
ファイルが作成されます。 <TOMCAT_HOME>/conf/server.xml 構成ファイルの SSL HTTP/1.1 Connector エントリのコメントを外し、
keystoreFile
属性値を更新します。<!-- 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="/path/to/soavirt.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLS"/>
- 以下のコマンドを実行して、サーバーの秘密鍵と自己署名証明書を保管するキーストア ファイルを作成します。
- <TOMCAT_HOME>/webapps/ の既存の config.properties ファイルを編集し、Apache Tomcat が使用するポートのエンティティを追加します (詳細については「サーバーの設定」を参照)。たとえば、
server.port.http=8080
またはserver.port.https=8443
を追加します。config.properties に指定するポートは、Tomcat の構成で指定したポートと一致していなければなりません。 - <SOAVIRT_HOME>/WEB-INF/config.properties ファイルに適切なライセンスを指定します (詳細については 「サーバーの設定」を参照)。
- Tomcat を起動します (たとえば <TOMCAT_HOME>/bin から)。
- 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 を参照してください。