ClassNotFoundException при попытке развернуть файл WAR на Glassfish - PullRequest
1 голос
/ 06 сентября 2011

Поскольку я продолжаю исследовать использование скриптов Ant Build, Spring и Glassfish, у меня возникла другая проблема при развертывании WAR на Glassfish.

Мой скрипт сборки, похоже, правильно компилирует и создает файл war, но когда я прихожу, чтобы развернуть его, используя

<glassfish-deploy force="true" file="${dist.dir}/${name}.war" />

Я получаю следующее сообщение об ошибке

[glassfish-deploy] remote failure: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.ClassNotFoundException: uk.co.crowderconsult.spider.controllers.HelloController. Please see server.log for more details.

Из которых я верю, основной вопрос

java.lang.ClassNotFoundException: uk.co.crowderconsult.spider.controllers.HelloController

Однако класс, который он не может найти, является одним из тех, которые я написал и содержал в файле WAR. Я проверил, открыв WAR с помощью winzip, и там находится классный файл.

Обычно я полагаю, что я не включил что-то в путь к классам, но 1) класс находится в файле, который я пытаюсь развернуть, поэтому ожидал, что он все равно будет на пути к классам, и 2) Я не знаю, как установить путь к классу для команды развертывания Glassfish.

Я также пытался развернуть его, используя задачу asadmin из командной строки и консоль администратора Glassfish, с теми же результатами.

Может ли кто-нибудь направить меня в правильном направлении, когда я чувствую, что просто хожу кругами ?! Если требуется какая-либо другая информация, пожалуйста, сообщите мне

Большое спасибо.

1 Ответ

0 голосов
/ 06 сентября 2011

Когда вы говорите «оно есть», я понимаю, что в папке WEB-INF/classes в пути к пакету uk.co.crowderconsult.spider.controllers есть HelloController.class.Это правда?Если да, загрузчик класса должен найти его.Если нет, то это объяснило бы, почему у вас есть CNFE.

Вы правы: если ваш WAR-файл сконструирован правильно, вам не нужно больше ничего делать, чтобы объяснить CLASSPATH веб-серверу.

...