手動でTomcatへのデプロイを行う

最終更新日: 2022年12月7日
R8 | R9

createWarコマンド

WagbyDesignerにてビルド後、コマンドプロンプトを開き、次のコマンドを実行してください。

cd [インストールフォルダ]\misc
createWar.bat
Linux/Mac OS X 環境の場合は createWar.sh コマンドになります。

実行すると、インストールフォルダに[アプリケーション名].warファイルが作成されます。

ルートデプロイの場合はROOT.warになります。

デプロイの手順

ここで説明する手順は、Tomcat 9.0.58 を用いて確認したものです。Tomcat のバージョンによって手順が異なる可能性がありますので、あらかじめご了承ください。

Tomcat のダウンロードと WAR ファイルのコピー

ダウンロードした Tomcat をインストールします。標準の Tomcat に含まれている webapps フォルダ内のファイルをすべて削除したあと、上で作成したWARファイルを webapps フォルダにコピーします。

bin/setenv.{bat,sh}ファイルの作成

bin/setenv.{bat,sh}を作成します。.bat は Windows OS 用、.sh は Linux/Mac OS X 用です。具体的には次の環境変数を設定します。

setenv.bat (Windows OS)

set CATALINA_OPTS=-server -Xmx1024m -Xms128m "-Djava.security.auth.login.config=%CATALINA_HOME%\conf\app_jaas.config"  "-Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP" "-Duser.timezone=Asia/Tokyo" "-noverify" "-XX:TieredStopAtLevel=1"

setenv.sh (Linux/Mac OS X)

CATALINA_OPTS=-server\ -Xmx1024m -Xms128m\ -Djava.security.auth.login.config="$CATALINA_HOME"/conf/app_jaas.config\ \ -Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP\ -Duser.timezone=Asia/Tokyo\ -noverify\ -XX:TieredStopAtLevel=1
  • -server は、JavaVMをサーバモードで実行することを指定します。
  • -Xmx1024m -Xms128mはヒープメモリの設定です。適切なメモリサイズを指定してください。
  • -Djava.security.auth...は Wagby が内部で利用している認証・認可のためのフレームワークであるJAASの設定ファイルの位置を指定しています。上の記述どおりとしてください。
  • -Dsun.nio.cs.map=...は、JavaMailでの文字エンコーディングを指定しています。メール送受信機能を利用する場合に必要です。
  • -Duser.timezone=...は、日付のタイムゾーンを指定しています。

bin/service.batファイルの修正 (Windows OS)

Windows環境でサービス登録を行う場合に必要です。上記のsetenv.batと同様の環境変数を設定してください。 これに加えて、--StartPath で起動時のカレントディレクトリを指定します。

具体的には同ファイルにある :installed の直下に次のコードを追加します。

"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.security.auth.login.config=%CATALINA_HOME%\conf\app_jaas.config;-Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP;-Duser.timezone=Asia/Tokyo" --StartPath "%CATALINA_HOME%\bin" --JvmMs 128 --JvmMx 1024
if not errorlevel 1 goto installed2
echo Failed installing '%SERVICE_NAME%' service (1)
goto end
:installed2

conf/server.xmlの修正

ビルドされたアプリケーションに含まれている conf/server.xml をコピーしてください。

コピー後、必要に応じて次の内容を修正してください。

  • Tomcatのシャットダウンポートの設定(Server要素のport属性)
  • HTTP接続の設定(protocol属性がHTTP/1.1となっているConnector要素)
  • AJP接続の設定(protocol属性がAJP/1.3となっているConnector要素)

また、次の設定がコメントアウトされていることも念のため確認してください。

  • Realm className="org.apache.catalina.realm.LockOutRealm" の部分
  • Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" の部分

conf/web.xmlの修正

ビルドされたアプリケーションに含まれている conf/web.xml をコピーしてください。

conf/logging.propertiesの修正

Tomcat が標準で提供している manager と host-manager に関する記述をコメントアウトします。

conf/app_jaas.configの作成

wagbyapp\conf\app_jaas.configをコピーしてください。認証・認可に必要な設定ファイルです。

JDBCドライバファイルの用意

Tomcatのlibフォルダに、利用するデータベースのJDBCドライバファイル(jarファイル)をコピーします。

なお HSQLDB を利用する場合は、JDBCドライバとしてhsqldb.jarをコピーしてください。

実行

実行

binをカレントディレクトリとし、startup.batを実行します。起点フォルダは bin としてください。

初回起動時にWARファイルがwebappsフォルダ内に展開されます。

終了

binフォルダ内のshutdown.batコマンドを実行します。

InitLoader.jarを利用する

InitLoader.jarは、コマンドラインによるインポート、エクスポート処理を行うためのツールで、Wagbyが標準で提供しています。 このツールを利用する場合は、次の手順を追加で行なってください。

  1. 最初にウェブアプリケーションを起動します。WARファイルがwebapps内に展開されます。
  2. 自動生成されたwagbyapp\bin内の下記ファイルを、Tomcatのbinフォルダにコピーしてください。
    check_db.bat
    check_db.sh
    drop_db.bat
    drop_db.sh
    export_db.bat
    export_db.sh
    export_db_zip.bat
    export_db_zip.sh
    import_db.bat
    import_db.sh
    init_db.bat
    init_db.sh
    update_db.bat
    update_db.sh
    InitLoader.jar
    
  3. check_db.batを実行してデータベース接続テストを行います。このコマンドを実行すると、JDBCドライバから取得された情報をcheck_db.txt に出力します。
InitLoader.jarが利用するデータベース接続情報は、WEB-INF/export/conf/initdb.xmlに記述されています。

ビルドせずにデータベースの接続先を変更する

他社製品との連携 > 外部データベース > 設定ファイルの変更または環境変数で接続先データベースを切り替える、をお読みください。

ビルドせずに Tomcat のポート番号を変更する

wagbyapp\conf\server.xml ファイルを修正してください。修正箇所は次のとおりです。

  • Tomcatのシャットダウンポートの設定(Server要素のport属性)
  • HTTP接続の設定(protocol属性がHTTP/1.1となっているConnector要素)
  • AJP接続の設定(protocol属性がAJP/1.3となっているConnector要素)

仕様・制約

  • Tomcat 以外の Web アプリケーションサーバを利用することはできません。
  • Tomcat の起点フォルダは $(Tomcatフォルダ)/bin となっています。例えば $(Tomcatフォルダ)/foo/bin などのように階層を変えることはできません。
  • Tomcat を再起動させずに war ファイルを入れ替えた場合、ログファイル (system.log) の日次ローテート処理が行われなくことがあります。この場合は Tomcat を再起動させることで解消されます。
  • クラスファイル数が65,536を超える場合は、同梱されている misc/build.xml をご利用ください。
  • 1つの Tomcat で複数の Wagby アプリケーションを動作させることはできません。具体的には webapps フォルダに複数の war ファイルを展開することはできません。"1 Wagby アプリケーション = 1 Tomcat" になります。(*1)
(*1) ログフォルダ (logs)、エクスポートフォルダ、upload_dir フォルダなどはすべて1つのWagbyアプリケーションで利用することを前提として設計されています。複数のWagbyアプリケーションで共有することは考慮されていません。