アプリケーションの構築を完了したところで、ここでいくつかの重要な設定ファイルを 観察してみましょう。導入準備の出来た最終アーカイブ - jsfejb3.ear を 構築しました。この EAR ファイルの内容は以下のようになるはずです:
jsfejb3.ear
|+ app.jar // contains the EJB code
|+ import.sql
|+ Todo.class
|+ TodoDao.class
|+ TodoDaoInt.class
|+ META-INF
|+ persistence.xml
|+ app.war // contains web UI
|+ index.html
|+ index.xhtml
|+ create.xhtml
|+ edit.xhtml
|+ todos.xhtml
|+ TodoBean.class
|+ style.css
|+ META-INF
|+ WEB-INF
|+ faces-config.xml
|+ navigation.xml
|+ web.xml
|+ META-INF // contains the descriptors
|+ application.xml
|+ jboss-app.xml
application.xml: このファイルは EAR (我々のケースでは、app.jar)内の JAR ファイルをリストし、 JBoss サーバーに対し見るべきファイルとその場所を指示します。このアプリケーションの root URL も 'context-root' としてこのファイル内に指定されています。
<application>
<display-name>Sample Todo</display-name>
<module>
<web>
<web-uri>app.war</web-uri>
<context-root>/jsfejb3</context-root>
</web>
</module>
<module>
<ejb>app.jar</ejb>
</module>
</application>
jboss-app.xml: 全ての EAR アプリケーションはそのクラスローダー用に 独自の文字列名を指定する必要があります。我々の場合は、クラスローダー名として アプリケーション名を 'jsfejb3' とします。
<jboss-app>
<loader-repository>
jsfejb3:archive=jsfejb3.ear
</loader-repository>
</jboss-app>
app.jar: ここには EJB3 Session Bean と Entity Bean クラス、及び 関連した設定ファイルが含まれています。更には、persistence.xml ファイルは バックエンドデータソース(我々の場合は、デフォルトの HSQL データベース)を EntityManager 用に設定します。
<persistence>
<persistence-unit name="helloworld">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/DefaultDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
</persistence>
app.war: ここには、Web Application aRchive (WAR) 仕様を基にして パッケージされた Web UI ファイルが含まれています。 これは、 全ての Web ページ及び、 必要な設定ファイルを含んでいます。 web.xml ファイルは全ての JAVA EE web アプリケーションにとって重要なファイルです。 これが web デプロイメント記述子ファイルです。 faces-config.xml は、 JSF 用の設定ファイルです。navigation.xml ファイルは、 JSF ページナビゲーションの規則を含んでいます。
//faces-config.xml
<faces-config>
<application>
<view-handler>
com.sun.facelets.FaceletViewHandler
</view-handler>
</application>
<managed-bean>
<description>Dao</description>
<managed-bean-name>todoBean</managed-bean-name>
<managed-bean-class>TodoBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>