次の構造のearファイルがあります
META-INF/
META-INF/MANIFEST.MF
META-INF/application.xml
META-INF/build.properties
doi-ejb.jar
doi-web.war
lakshmi-ejb.jar
lakshmi-std-cmp-ejb.jar
lib/
lib/commons-1.0.jar
lib/commons-web-1.0.jar
lib/doi-int-test-lib.jar
lib/doi-lib.jar
lib/doi-unit-test-lib.jar
lib/lakshmi-lib.jar
lib/lakshmi-std-cmp-lib.jar
war ファイル ( doi-web.war
) には
META-INF/
META-INF/MANIFEST.MF
WEB-INF/
WEB-INF/classes/
WEB-INF/classes/ch/[...]
WEB-INF/classes/common-messages.properties
WEB-INF/classes/common-messages_de.properties
WEB-INF/classes/common-messages_it.properties
WEB-INF/classes/commons.properties
WEB-INF/classes/messages.properties
WEB-INF/faces-config.xml
WEB-INF/glassfish-web.xml
WEB-INF/web.xml
resources/
resources/css/[...]
resources/images/[...]
resources/scripts/
view/[...]
Glassfish でエラーなしで ear ファイルをデプロイできます。
[...]
javax.enterprise.system.container.web.com.sun.enterprise.web || WEB0671: Loading application [doi#doi-web.war] at [/doi]
javax.enterprise.system.tools.admin.org.glassfish.deployment.admin || doi was successfully deployed in 5,251 milliseconds.
アプリケーションを起動しようとすると、次のようになります。
[...]
Caused by: java.util.MissingResourceException: Can't find bundle for base name /commons, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:705)
at ch.ethz.id.wai.web.controller.ApplicationSettingsController.setup(ApplicationSettingsController.java:25)
... 67 more
私が理解したように、これ/commons.properties
はクラスパスにある必要があることを意味します。ディレクトリWEB-INF/classes
はクラスパスにあるべきですか? ファイルが認識されるため、WEB-INF
ディレクトリは Glassfish によって読み取られます。web.xml