感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

JBossにデプロイするファイルの説明。WAR,EJB-JAR,EAR,SARについて。

スポンサーリンク

デプロイ

JBoss ASにデプロイできるアプリケーションは4つある。

  • WAR:

Webブラウザから利用するWebアプリケーション。拡張子は.war。Web ARchiveの略。
WARファイルのルートディレクトリはアプリケーションのコンテキストルートと呼ばれる。
これはデプロイメントディスクリプタで任意の名前を設定できる。

Enterprise JavaBeansで作成されたアプリケーション。
セッションBeanやエンティティBeanなどのEJBファイルと、EJBの属性を記述するデプロイメントディスクリプタをパッケージングしたもの。

  • EAR:

WARやEJB-JARをモジュールとして不埋めることができる包括的なアプリケーション。
EAR(Enterprise ARchive)はWARファイルやEJB-JARファイにパッケージングされたWebアプリケーションやEJBをモジュールとして内部に取り込み、拡張子.earを持つアーカイブファイルにパッケージングしたもの。

  • SAR:

JBoss ASのJMXコンポーネント(MBeanサービス)

SAR

SARはService ARchiveの略で、MBeanと呼ばれるJBoss ASのサービスをパッケージングしたもの。
deploy以下に拡張子".sar"のファイル(それかフォルダ)を置く。
その~.sar/META-INF以下には
~.sar/META-INF/jboss-service.xmlというサービス内容を記述したデプロイメントディスクリプタを含める。

注意すべきは、SARはJBoss AS固有なので、JBoss AS以外のアプリケーションサーバにはデプロイできない。
~.sarを置くことで、JBoss ASにMBeanとして認識される。

ちなみに、ASっていうのは、Application Serverのことです。

SARのルート・ディレクトリ/META-INFにはjboss-service.xmlを配置するわけだが、内容はこんな感じ。

<?xml version="1.0" encoding="UTF-8"?>

<server>
  <mbean code="com.test.HelloWorldService" name="com.test:service=HelloWorld">
    <attribute name="Message">Hello World</attribute>
    <depends>jboss:service=Naming</depends>
  </mbean>
</server>

上記のXMLの説明だが、
mbeanというのは、JBoss ASにサービスとしてデプロイするMBeanを記述する。
name属性はJMXオブジェクト名の形式で記述する。
JMXオブジェクト名の形式とは、<ドメイン名>:<プロパティのリスト>の形式。
attributeはMBeanに固有の属性を記述する。属性の値を記述できるわけだ。
dependsという要素は、このサービスが依存するサービスを記述する。依存しているサービスがデプロイされるまで、このサービスはデプロイされない。

読んだ本

JBoss入門 オープンソース Java・EJB

JBoss入門 オープンソース Java・EJB

ずいぶん古い本だけど、JBossを詳しく説明してくれる数少ない日本語書籍。
こういうのは古くても価値がある。