10.4. AOP アプリケーションのパッケージ

AOP アプリケーションをJBoss Enterprise Application Platform にデプロイするには、 AOP アプリケーションをパッケージ化する必要があります。 AOP は SAR (MBean) と同様にパッケージ化されます。 XML ファイルを署名 *-aop.xml とパッケージと共に直接 deploy/ ディレクトリにデプロイするか (これにより jboss-aop.deployer ファイルにある base-aop.xml が利用できます)、 クラスを格納する JAR ファイルに XML ファイルが含まれるようにすることができます。 JAR に XML ファイルが含まれるようにする場合、 ファイルの拡張子は .aop でなければなりません。 また、jboss-aop.xml ファイルは META-INF ディレクトリに含まれなければなりません (例: META-INF/jboss-aop.xml)。
JBoss Enterprise Application Platform 5 では、 使用するスキーマを指定しないと情報が正しく構文解析されないため、 必ず指定してください。 スキーマを指定するには、 次のように xmlns="urn:jboss:aop-beans:1:0 属性をルート aop 要素に追加します。
<aop xmlns="urn:jboss:aop-beans:1.0">
</aop>
.aop JAR ファイルを使った既定の例を超えるものを作成するには、XML バインディング設定を格納する AOP ファイルが含まれるトップレベルのデプロイメントを作成します。 例えば、EAR ファイルまたは WAR ファイルに AOP ファイルを保持することができます。 AOP ファイル内にある META-INF/jboss-aop.xml ファイルに指定されたバインディングは、 WAR ファイル全体のすべてのクラスに影響します。
EAR ファイル内の AOP ファイルを取得するには、 次の例のように Java モジュールとして .ear/META-INF/application.xml にリストされなければなりません。
<?xml version='1.0'  encoding='UTF-8'?>
<!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN''http://java.sun.com/j2ee/dtds/application_1_2.dtd'>
 
<application>
    <display-name>AOP in JBoss example</display-name>
    <module>
        <java>example.aop</java>
    </module>
    <module>
        <ejb>aopexampleejb.jar</ejb>
    </module>
    <module>
        <web>
            <web-uri>aopexample.war</web-uri>
            <context-root>/aopexample</context-root>
        </web>
    </module>
</application>

重要

JBoss Enterprise Application Platform 5 では、 .ear ファイルの内容は application.xml にある一覧の順番通りにデプロイされます。 ロード時の組み入れを使用する場合は、 ejb クラスや servlet などがロードされる前にバインディングがシステムに存在するよう、 アドバイスされたクラスがデプロイされる前に example.aop ファイルにリストされているバインディングがデプロイされなければなりません。 これには、 application.xml の最初に AOP ファイルを記載します。 .sar ファイルや .war ファイルなど、 他のタイプのアーカイブは最初にデプロイされるため、 特別な処置は必要ありません。