Я строй проект для класса, который я принимаю, и он состоит из 4-х модулейNoClassDefFoundException в N-уровневого приложении
-impl (business logic/dao access)
-ejb (encapsulates business logic and provides access to it via a remote interface)
-war (web tier)
-ear (contains the war and ejb modules)
класса Одна утилиты, которая у меня есть внутри осущий способен населён H2 база данных. Он делает это, запустив ingestor, который считывает в процессах файл XML, который находится в хранилище Maven, используя различные даосские классы/методы глотают данные:
String fileName = "xml/proj-data.xml";
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
Когда я бегу ingestor через модульное тестирование, она работает нормально, но когда у меня есть все, многослойное, я получаю NoClassDefFoundException на XML/Proj-data.xml
Так основная схема, что у меня есть:
-the war has dependencies on the impl and ejb modules
-the ejb has dependency on the impl module
-the ear has dependency on the impl, ejb, and war
Это проект Maven. Когда я развертываю EAR на сервере, отображается начальная страница войны (как я ожидаю).
-На странице html есть кнопка, которая при нажатии, делает сообщение на сервлет -Серпеть вводит в него ejb, который он вызывает (через свой удаленный интерфейс). -Ejb-метод выполняет обратный вызов метода заполнения в имплатете, и thats, когда происходит исключение, и я возвращаю веб-страницу с указанием исключения.
Должен ли я также объявить этот репозиторий в файле WAR WAR?
'xml-файл, который находится в репозитории maven,' Ваш код не похож на чтение из репозитория Maven. –
xml-файл не находится на моей локальной машине, он считывается из пути к классам. Входной поток передается в качестве аргумента для моего ingestor. – user1154644