Разверните файлы WAR или EAR в jBoss AS 7 - PullRequest
3 голосов
/ 06 марта 2012

Я развертываю проект WebService в jBoss AS7, и все идет хорошо, за исключением того, что jBoss не расширяет мой файл WAR или EAR.

Уже пытался скопировать файл в папку "jboss-as-7.1.0.Final \ standalone \ deployments" и использовать WebConsole, но в обоих случаях результат был одинаковым.

Если я разверну из Eclipse, все будет в порядке.

Мне нужно, чтобы расширить мой файл, потому что при инициализации приложения я сканирую класс каталоги, которые ищут правильный класс для создания экземпляров с помощью отражения.

РЕДАКТИРОВАТЬ: Не знаю, является ли это конкретной ситуацией с jBoss AS 7 или с семейством jBoss AS, потому что я уже использовал WebSphere и jBoss Web, и оба они расширили файлы.

EDIT2: Добавлен System.out с путем выполнения

MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();

и возвращает следующий путь

C:\jboss-as-7.1.0.Final\bin\content\ServerEAR.ear\Server.war\WEB-INF\classes

ведьма не существует. Поэтому я выполнил поиск по имени класса и нашел его на

C:\jboss-as-7.1.0.Final\standalone\tmp\vfs\deployment5a9e98d5c43716c3\Server.war-e31a657d2bc3bd0f\WEB-INF\classes\r30

Разве нельзя заставить JBoss извлечь файлы в папку развертывания? Или как я могу получить предыдущий путь во время выполнения.

Ответы [ 3 ]

6 голосов
/ 25 сентября 2012

Я забыл об этом вопросе, поэтому я решил его так:

public String getRealFilePath(String aFilePath) throws Exception
{
    org.jboss.vfs.VirtualFile vFile = org.jboss.vfs.VFS.getChild(aFilePath);
    URI fileNameDecodedTmp = org.jboss.vfs.VFSUtils.getPhysicalURI(vFile);

    path = fileNameDecodedTmp.getPath();
    System.out.println(path);
    return path;
}

Так что во время выполнения мне просто нужно вызвать getRealFilePath () с исходными значениями вопроса и решением проблемы;)

2 голосов
/ 31 августа 2012

Пожалуйста, проверьте настройки classpath.Недавно я столкнулся с той же проблемой и решил ее, добавив системные переменные окружения:

CLASSPATH=.;
C:\Program Files\Java\jdk1.6.0_10\lib;
C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar;
C:\Program Files\Java\jdk1.6.0_10\lib\dt.jar; `
2 голосов
/ 02 апреля 2012

Я считаю, что вы не можете заставить Jboss7 автоматически развернуть файл war при развертывании.

Однако вы можете скопировать уже развернутый war, и у вас не должно возникнуть никаких проблем.

На самом деле, если вы внимательно посмотрите на развертывание Eclipse, вы заметите, что он копирует весь каталог в каталог развертывания, а не сам файл war.

Зачем вам развертывание в разобранном виде, кстати? Если вам нужно получить доступ к некоторым файлам и прочитать их как ресурсы, вы можете взглянуть на classpath resources

...