0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Nablarch Webアプリケーションのデバッグ方法について

Last updated at Posted at 2022-04-14

はじめに

こんばんわ、きりです。
本記事はNablarchを使ってみようのサブ記事として作成しております。

Nablarchを使ったWebアプリケーションの作成にて、NablarchのWebアプリケーションのテンプレートプロジェクトをダウンロードし、実行までを行いました。

今回は開発作業のお友達、デバッグの方法を整理します。
いくつか方法はあると思いますが、今回は

  • waittコマンドを使ったデバッグ
  • tomcatを利用したデバッグ

について整理します。

本記事以外のコンテンツはこちらから閲覧可能です。

なるべく、初心者目線で作成するつもりですが、分かりづらい部分ありましたら、コメント頂きたいです。

動作環境

種類 バージョン
OS Windows Professional 20H2
Eclipse 2022 Full Edition
7-Zip 21.07

※Eclipseのダウンロードについては、こちらの記事をご確認ください。

デバッグの方法

waittコマンドを使ったデバッグ

ブレークポイントを作成

./src/main/java/com/exampleSampleAction.javaを開きます。

image.png

indexメソッド行番号(今回は35)をダブルクリックしブレークポイントを作成します。

image.png

デバッグを実行する

プロジェクト名を右クリック>デバッグ>デバッグの構成をクリックし、Nablarchを使ったWebアプリケーションの作成にて、作成した「waitt:run」の構成を選択し、デバッグボタンをクリックします。

image.png

実行が開始され、ブレークポイントで停止しデバッグが行えることが確認できました。
※ デバッグ中の操作などはこちらをご確認ください。

image.png

tomcatを利用したデバッグ

こちらはいくつかの手順が必要となりますので、1つずつ説明していきます。

warファイルの作成

実行構成を作成し「mvn package」コマンドを実行します。

キー
名前 任意の値 mvn-package-web
基底ディレクトリー ${project_loc:myapp-web}
ゴール package

image.png

実行が成功すると、./targetフォルダにwarファイルが作成されます。

image.png

実行後、F5ボタンを押さないと表示が更新されない場合がありますので、F5ボタンを押してみましょう。

warファイルからlibフォルダを抽出

作成されたwarファイルを解凍します。
※warファイルは実体はzipファイル

拡張子を.zipに変更すればエクスプローラから解凍できますが、今回は拡張子.warのまま、7-zipで解凍します。
warファイルを右クリック > 7-Zip > 開くをクリックします。
※7-Zipはzipの圧縮・解凍ツールです、こちらよりダウンロードできます。
 解凍せずともzipの中身のファイルを開けるので、jarやwarファイルを扱うときに便利です。ReZipもできます。

image.png

7-Zipのビュー内で、WEB-INFを開くと、libフォルダが存在するため、このlibフォルダごとプロジェクトフォルダ直下にコピーします。

image.png

image.png

上記で何をしているかといいますと、今回のプロジェクトを実行するにはいくつかの依存関係ライブラリ(jarファイル)が必要となるのですが、warファイルを作成するとそれらのライブラリをてっとり速くlibフォルダに用意してくれることがわかったので、warファイルを作成して抽出した感じです。

その他にも、「mvn dependency:copy-dependencies -DoutputDirectory=./lib」といったMavenコマンドを実行しても、同じように依存関係のあるライブラリ(jar)をダウンロードしてくれます。

image.png

依存ライブラリフォルダを追加する

プロジェクト名 > プロパティー > Javaのビルド・パス > ライブラリー > クラスパスを選択し、外部クラス・フォルダーの追加をクリックします。
image.png

warファイルからlibフォルダを抽出でコピーしたlibフォルダを指定します。
適用してダイアログを閉じます。

image.png

プロジェクト・ファセットへ変換

操作の意味はしっかりはわかってないのが現状なのですが、EclipseのGUI操作でtomcatを実行するために、以下の手順でプロジェクトの構成を変更します。
プロジェクト名を右クリック > プロパティー > プロジェクト・ファセットを選択 > ファセット・フォームへ変換 をクリックします。

image.png

動的Webモジュールを選択し、より詳しい構成が使用可能をクリックします。

image.png

ファセット・プロジェクトの変更ダイアログでOKボタンをクリックします。

image.png

適用して閉じるボタンをクリックします。

image.png

確認画面でOKボタンをクリックします。(再ビルドが走ります)

image.png

H2Databaseファイルの配置

NablarchのテンプレートではH2 Databaseと呼ばれる、ファイルが管理のデータベースを利用しています。
※設定により、MySQLやOradle Databaseへの切り替えも当然可能です。
※H2Databaseの簡単な操作方法については、Nablarch開発におけるH2 Databaseの利用方法を御覧ください。

Mavenから実行する場合はプロジェクトフォルダの./h2/db/SAMPLE.h2.dbというファイルが使用されるのですが、
tomcatから実行する場合は、tomcatの作業フォルダが起点になるためファイルの場所を変更する必要があります。

作業フォルダはeclipse.exeが存在するフォルダ、私の場合は「C:\Program Files\pleiades-2022-03\eclipse」になっているようで、「C:\Program Files\pleiades-2022-03\eclipse\h2\db\SAMPLE.h2.db」ファイルを探しているようです。

そのため、プロジェクトフォルダ内のh2フォルダを「C:\Program Files\pleiades-2022-03\eclipse」にコピーするという方法が1つあります。

ただし、Program Filesに開発で利用するデータファイルを配置するのが気持ち悪かったので、私は以下のようにしました。

ユーザーフォルダ直下にh2Databaseフォルダを作成し、その中にh2フォルダをコピーする。

C:/Users/
└ユーザー名
 └h2Database
  └h2
   └db
    └SAMPLE.h2.db

pom.xmlの設定を以下のように変更します。

pom.xml
    <nablarch.db.url>jdbc:h2:~/h2Database/h2/db/SAMPLE</nablarch.db.url>

もともと、./h2/db/SAMPLEとなっており作業フォルダ直下からの相対パスとなっていたところを~/h2/db/SAMPLEとすることで、ユーザーフォルダからの相対パスに変更しています。

サーバーで実行

これまでの作業でやっとTomcat上でWebアプリを実行する準備ができました。
さっそく、実行してみましょう。

プロジェクト名を右クリック > 実行 > サーバーで実行 をクリックします。
image.png

Tomcat9_Java17を選択し、次へボタンをクリックします。
※選択する項目名は実行するJavaバージョンによって変更してください。

image.png

構成済みにmyapp-webが登録されていることを確認して、完了ボタンをクリックします。

image.png

tomcatが実行し、NablarchのWebアプリケーションが実行されているログがコンソールに表示されます。
また、ブラウザが起動して、以下の画面が表示されれば成功です。

image.png

tomcatの停止

サーバービューを表示し、停止対象のサーバー名を右クリック > 停止ボタンをクリックします。

image.png

※サーバービューが見当たらない場合は、メニュー>ウィンドウ>ビューの表示より、「サーバー」を選択します。
※JavaEEパースペクティブになっていない場合は、パースペクティブの切り替えるのもおすすめです。メニュー>ウィンドウ>パースペクティブ>パースペクティブを開く>その他よりJava EEを選択します。一度表示するとEclipse右上に切り替えタブのようなものが表示されます。

image.png

デバッグ

プロジェクト名>デバッグ>サーバーでデバッグ もしくは サーバービューにて、対象のサーバーを右クリックし、デバッグを選択します。
ブレークポイントが作成されている場合は、tomcatでWebサーバー実行、操作後、ブレークポイントの行で停止します。

ポートを変更する

tomcatはデフォルトで8080ポートを利用します。
別のアプリが既に8080を利用していると(Dockerあたりが怪しいです)、期待通り動作しません(実行が失敗する気がします)。

そのため、必要に応じて以下の手順で使用ポートを変更します。

サーバービューの対象のサーバー名をダブルクリックします。
概要というタイトルの画面が表示されます。
画面右のポートのうち、8080となっている場所クリックして任意の値に変更します。

image.png

ポートが変更されているかはブラウザ表示時のURLより確認できます。

image.png

最後に

今回はNablarchのWebアプリケーションのデバッグ方法について、整理しました。

waitt:runを利用する方法と、tomcat上で実行する方法の2つについて説明しました。
tomcatの方は準備にいくつかの手順が必要でしたが、一度準備してしまえばwaitt:runより使いやすのかなと感じましたが、どちらが最適化の判断はしばらく使ってみて判断したいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?