JBoss の仕組み、開発時に行うべきこと。
JBoss について質問です。
(JBoss EAP 6.1.0 です)
パッケージの修正から再配置までの手順でわからないところがあり困っています。
JBossは未経験なのですが、10年くらい前にApatch + Tomcat で Struts のフレームワークでほんのちょっとだけ開発を行ったことがあります。
開発の流れは、以下のように認識しているのですが、何かしらの手順が抜けていたり、認識が誤っていたりするのでしょうか??
(Eclipseを使っています。)
(1)プロジェクトをインポート
(2)ソースを修整しコンパイル
(3)Warファイルとしてエクスポート
(4)%JBOSS_HOME%/server/default/deploy にWarファイルを配置
******************************************************
このとき、
(1)「Warファイルのエクスポートの仕方」がわかりません。
メニューから選択すると、
パッケージの名前を入れたり、出力先を選択するようなダイアログが出るのですが、
パッケージの名前を入れても、OKボタンが活性にならず、作成ができないのです。
(2)「ソースを修整しコンパイル」をしたときに、
.classファイルはどこかの出力ディレクトリに作られるのでしょうか?
(見当たらないのですが、.classファイルは作られずに、
Warファイルとしてその中に内蔵されるものなのでしょうか)
Warファイルには、
jspファイル ・・・ プレゼンテーション層
classファイル ・・・ サーブレットや、ファンクション層
jarファイル ・・・ 複数のclass をパッケージとしてまとめたもの
web.xmlファイル ・・・ 設定ファイル
が含まれているという認識です。
しかし、不思議なのは、
なぜ「server/default/deploy にWarファイルを配置」
で動くのか?というのがわかっていません。
それぞれ、
htmlやjspファイル ⇒ WEB-INFの直下
classファイル ⇒ WEB-INF/classes
jarファイル ⇒ WEB-INF/lib
web.xmlファイル ⇒ WEB-INF/web.xml
に配置すると思います。
そして、
<welcome-file-list>要素配下の、
<welcome-file>に、
index.jsp、index.htmlを配置する認識です。
しかし、わからないのが、
「Warファイル」の形式のまま、
server/default/deploy に置いただけで、
・WEB-INFの直下
・WEB-INF/classes
・WEB-INF/lib
・WEB-INF/web.xml
には何も置いていないのに、
なぜ動くのでしょうか?
(3)リリースは、必ず「Warファイル」でやらなければならないのでしょうか?
「jarファイル」を作る際、jarの中には、web.xml が入っていない認識です。
なので、
「jarファイルの差し替え」を行うときは、
・クラスのインタフェースが変わっていない時
(.classpath に書かれているクラスのインタフェースに変更がないとき)
に限り、jarファイルの置き換えだけで、プログラムを入れ替えることができるということであっていますでしょうか?
(4)プレゼンテーション層としてのトップページとしての「html」と、
そのhtmlから実行されるサーバ処理の「関連付け」はどのような仕組みになっているのでしょうか?
「WEB-INF/web.xml」に記載された、
ウェルカムページというか、TOPページというか、それを経由して、
formコントロール」に Inputの情報を、
HTTP Request として、サーバに送られる認識です。
そのとき、
その「HTTP Request」は、どこで受け取っているのでしょうか??
サーバ上のどこかのクラスで、
なんらかの方法で「HTTP Request」のヘッダ情報を解析し、
「要求された処理」を実際に動かすクラスに、処理を依頼すると思うのですが、
その「HTTP Request」を元に振り分け処理を行っているクラスというのは、
一体、なんというクラスなのでしょうか??
というか、
どのクラスでそれを行うのかは、一体、なんという設定ファイルに記載するのでしょうか?
(.xml ファイルなり、.conf ファイルなり、.ini ファイルなり、
設定系ファイルが多くて中々探せないです。。)
(5)サーブレットが処理を終えたら、
クライアントに「HTTP Response」というか、
「HTML」を返す認識ですが合っていますでしょうか?
(6)「.project」は、「パッケージ」1個につき1個存在しており、
また「パッケージ」1個につき、「jarファイル」も1個ということで合っていますでしょうか?
お礼
遅くなって申し訳ありません。 回答ありがとうございます。 何とか動かすことができました。