(p46) オートリロードの設定
サーブレットの Javaコード( . javaファイル )は
コンテナ上の src フォルダに格納する。そのJavaコードを
コンパイルし生成した . classファイルは WEB-INF フォルダに
配備する。これは基本事項ですね。
これまでの過程で、src フォルダに置いた . java ファイル は
compile . bat で コンパイルすると、自動的に WEB-INF フォルダ
に . class ファイルが生成される。
先ほどの HelloServlet.java ファイルを一部訂正し、再コンパイルすると、
すでに存在している Hello.Servlet.class の内容は更新されている。
結果を確認すべく、
ブラウザ で サーブレット(.class)ファイルが更新されたか確認すべく、
更新ボタンを押すも、画面はまったく変わらない。
コンパイルにより コンテナ内の WEB-INF フォルダに.class ファイルは配備されて
いるはずだが、ブラウザ(クライアント)にはなぜ反映されないのか?
メカニズムははっきり見えないが、コンテナ(Tomcat)を再起動
しなければならないらしい。クライアントは WEB-INF を見に行くと思っていたが、
もう少し複雑なのですね。
前置きが長くなりましたが、ここでは Tomcat を再起動せずとも、再コンパイルのみで
済ませる技術(Tomcat独自の仕組み)が紹介されている。
コンテキストルート内(entryフォルダ内)に META-INF フォルダを作り、その中に
context.xml を作成する。
内容は <Context reloadable="true"/> だけでよい。
これをコンテナに置きっぱなしにしていると、運用時にパフォーマンスが落ちる。
手動のリロード なるものがあるらしい。
eclipse では、再起動ボタンを押せばすむので、オートリロードは、さほど
重要ではないと思った。
(p48) パッケージ付のサーブレット
パッケージについてはその概念の必要性がはっきりしないが、開発上有効な
ものなのだろう。p49で web.xml に追加しているが、コンテナが持つ サーブレットの
数だけ、<servlet-name>、<servlet-class>、<servlet-pattern>の定義が必要である
ことが見て取れる。
p50では src フォルダ内 に fooフォルダを作成し、その中にBarServlet . java を
作成して、コンパイルするコマンドが乗っている。
> compile foo/BarServlet.java
であるが、p44 で説明があった、”%1にはバッチファイルに渡される引数~” の
意味が理解できた。改めて javac コマンドを ググッてみたが、奥が深いね。
(p54) Oracle . java も自動的にコンパイルされる。
小生は、Oracle . java と OracleServlet . java をそれぞれコンパイルしたが、
ここでは OracleServlet . java のみコンパイルすれば自動的にOracle . java も
コンパイルしてくれる。メカニズムは後から理解できるだろうと思い、深く追求せずに
次に進む事とする。
情報処理 再チャレンジ ブログ ホーム へ
サーブレットの Javaコード( . javaファイル )は
コンテナ上の src フォルダに格納する。そのJavaコードを
コンパイルし生成した . classファイルは WEB-INF フォルダに
配備する。これは基本事項ですね。
これまでの過程で、src フォルダに置いた . java ファイル は
compile . bat で コンパイルすると、自動的に WEB-INF フォルダ
に . class ファイルが生成される。
先ほどの HelloServlet.java ファイルを一部訂正し、再コンパイルすると、
すでに存在している Hello.Servlet.class の内容は更新されている。
結果を確認すべく、
ブラウザ で サーブレット(.class)ファイルが更新されたか確認すべく、
更新ボタンを押すも、画面はまったく変わらない。
コンパイルにより コンテナ内の WEB-INF フォルダに.class ファイルは配備されて
いるはずだが、ブラウザ(クライアント)にはなぜ反映されないのか?
メカニズムははっきり見えないが、コンテナ(Tomcat)を再起動
しなければならないらしい。クライアントは WEB-INF を見に行くと思っていたが、
もう少し複雑なのですね。
前置きが長くなりましたが、ここでは Tomcat を再起動せずとも、再コンパイルのみで
済ませる技術(Tomcat独自の仕組み)が紹介されている。
コンテキストルート内(entryフォルダ内)に META-INF フォルダを作り、その中に
context.xml を作成する。
内容は <Context reloadable="true"/> だけでよい。
これをコンテナに置きっぱなしにしていると、運用時にパフォーマンスが落ちる。
手動のリロード なるものがあるらしい。
eclipse では、再起動ボタンを押せばすむので、オートリロードは、さほど
重要ではないと思った。
(p48) パッケージ付のサーブレット
パッケージについてはその概念の必要性がはっきりしないが、開発上有効な
ものなのだろう。p49で web.xml に追加しているが、コンテナが持つ サーブレットの
数だけ、<servlet-name>、<servlet-class>、<servlet-pattern>の定義が必要である
ことが見て取れる。
p50では src フォルダ内 に fooフォルダを作成し、その中にBarServlet . java を
作成して、コンパイルするコマンドが乗っている。
> compile foo/BarServlet.java
であるが、p44 で説明があった、”%1にはバッチファイルに渡される引数~” の
意味が理解できた。改めて javac コマンドを ググッてみたが、奥が深いね。
(p54) Oracle . java も自動的にコンパイルされる。
小生は、Oracle . java と OracleServlet . java をそれぞれコンパイルしたが、
ここでは OracleServlet . java のみコンパイルすれば自動的にOracle . java も
コンパイルしてくれる。メカニズムは後から理解できるだろうと思い、深く追求せずに
次に進む事とする。
情報処理 再チャレンジ ブログ ホーム へ
0 件のコメント:
コメントを投稿