これは、JEE5 準拠のサーバーで機能します。
あなたが持っているとしましょう
- 2 myejb1.jar および myejb2.jar という名前の EJB
- mywebapp1.war および mywebapp2.war という 2 つの WAR Web アプリケーション
- log4j.jar および mycommon.jar と呼ばれる 2 つの一般的な JAR
すべてを myapp.ear という EAR ファイルにパッケージ化します。
myapp.ear ディレクトリ構造は次のようになります。
myapp.ear:
META-INF/application.xml
myejb1.jar
myejb2.jar
mywebapp1.war
mywebapp2.war
lib/log4j.jar
lib/mycommon.jar
META-INF/application.xml のコンテンツには次が含まれます
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/application_5.xsd">
<module>
<ejb>myejb1.jar</ejb>
</module>
<module>
<ejb>myejb2.jar</ejb>
</module>
<module>
<web>
<web-uri>mywebapp1.war</web-uri>
<context-root>webapp1</context-root>
</web>
</module>
<module>
<web>
<web-uri>mywebapp2.war</web-uri>
<context-root>webapp2</context-root>
</web>
</module>
<library-directory>lib</library-directory>
</application>
URL http://myJBossServer.url/webapp1/ http://myJBossServer.url/webapp2/から Web アプリにアクセスできるようになります。
CSS、画像、JavaScript などの静的リソースを複数の Web アプリケーション間で共有することもできます。たとえば、次のディレクトリ レイアウトの static-content.jar ファイルがあります。
static-content.jar:
META-INF/resources/css/my.css
META-INF/resources/img/my.jpg
META-INF/resources/js/jQuery.js
META-INF/resources/js/node.js
ビルド時に両方の Web アプリケーションの WEB-INF/lib ディレクトリに static-content.jar を配置しました。今
http://myJBossServer.url/webapp1/css/my.css
http://myJBossServer.url/webapp2/css/my.css
static-content.jar から同じソースを持っています。
デフォルトの my.css を webapp2 のみでオーバーライドしたい場合は、変更した my.css を mywebapp2.war に直接配置できます。
mywebapp2.war
css/my.css
WEB-INF/lib/static- content.jar
WAR の css/my.css は、static-content.jar の my.css をオーバーライドします。