2009-11-10 4 views
4

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

+0

Просто хотел добавить, что требуемый проект был экспортирован, он находится на пути сборки проекта, который я создаю, и зависимость проекта также выбирается в настройках зависимостей Java EE. Все еще не удается установить с моим проектом. – Casey

ответ

2

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

+0

То же самое случилось со мной - удаление других проектов в этом рабочем пространстве и очистка проекта избавились от проблемы. –

0

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

+0

Когда я вхожу в настройки заказа и экспорта проекта, исходная папка проверяется на экспорт. – Casey

2

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

+0

Это проверено. Все еще не удается найти класс. – Casey

+0

Вы видите, что развертывается на сервере? Является ли это банкой с вашим проектом зависимости? Возможно, вам нужно очистить/полностью построить, а затем опубликовать снова все приложение. – cetnar

0

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

0

В манифесте файла WAR включает запись, как

/lib/dependent.jar 

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

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

Смежные вопросы