Я использую конфигурацию, аналогичную описанной вами, хотя я помещаю все приложения, которые я хочу развернуть, сначала в deploy/myapps
, а все приложения для развертывания в deploy/myapps.last
. Это работает правильно для меня на JBoss 5.1.2.
Хотя я не могу объяснить, почему это не работает для вас, я могу предложить альтернативное решение. Вы можете заставить EAR объявлять зависимость от WAR, и JBoss затем будет гарантировать, что WAR будет развернут первым.
Сначала добавьте файл с именем aliases.txt
в каталог META-INF
вашей WAR. Этот файл должен содержать только одну строку с произвольным именем / идентификатором для вашей WAR. Например, если у вас есть mywebapp.war, ваш META-INF/aliases.txt
файл может содержать «mywebapp». Это просто должно быть то, что не будет конфликтовать с другими псевдонимами, объявленными другими приложениями, развернутыми на том же сервере.
Затем добавьте файл jboss-dependency.xml
в каталог META-INF
вашего EAR, содержащий следующее (вместо «mywebapp» для псевдонима, созданного вами выше):
<dependency xmlns="urn:jboss:dependency:1.0">
<item whenRequired="Real" dependentState="Create">mywebapp</item>
</dependency>
Это должно гарантировать, что WAR развернут перед EAR.
Кроме того, если вы попытаетесь развернуть EAR без наличия WAR, JBoss запишет четкое сообщение об ошибке развертывания, сообщающее о отсутствующей зависимости.