Исключение NoClassDefFoundError при развертывании динамического веб-приложения из затмения - PullRequest
4 голосов
/ 10 ноября 2009

У меня есть небольшой динамический веб-проект в Eclipse gallileo, который ссылается на другой проект. Когда я развертываю свой проект в Glassfish v2.1, как только я пытаюсь создать экземпляр класса, который находится в другом проекте, я получаю NoClassDefFoundError. Я не могу понять, какой параметр мне не хватает, чтобы убедиться, что указанный проект также развернут вместе с ним.

Ответы [ 5 ]

2 голосов
/ 10 ноября 2009

Видимо, у меня возникла проблема с Eclipse. У меня есть несколько проектов в моей рабочей области, и я импортировал свой текущий проект из другого места за пределами моей текущей рабочей области. Перемещение этого проекта в мое рабочее пространство устранило проблему.

2 голосов
/ 10 ноября 2009

Свойства проекта -> Зависимости модуля Java EE - проверьте требуемый проект, который будет развернут в папке WEB-INF / lib.

0 голосов
/ 10 ноября 2009

В манифесте вашего WAR-файла есть запись типа

/lib/dependent.jar

Затем убедитесь, что depen.jar скопирован в папку /lib внутри WAR. Eclipse не будет делать это по умолчанию, поэтому большинство магазинов используют ANT для создания своих файлов WAR / EAR.

Если вы не хотите связываться с файлом MANIFEST, вам придется скопировать файл absolute.jar куда-нибудь на целевой сервер, а затем изменить CLASSPATH приложения, добавив в него «lib-jar-folder / зависимый». банка».

0 голосов
/ 10 ноября 2009

Включите файл jar из ссылочного проекта с вашим проектом при сборке файла WAR. Щелкните правой кнопкой мыши по вашему проекту и выберите «путь сборки», затем выберите «настроить путь сборки», теперь должно быть открыто окно свойств вашего проекта. Нажмите «Зависимости модуля Java EE», оттуда вы можете добавить файл jar, созданный из другого проекта, и при создании файла WAR этот файл jar будет включен в файл WAR, что позволит вам использовать классы в другом проекте.

0 голосов
/ 10 ноября 2009

В ссылочном проекте вы экспортируете пакет, в котором находится нужный класс?

...