Я пытаюсь настроить Eclipse, чтобы выполнить и развернуть мои проекты на Причале 7 серверов (самая старая версия, доступная с http://download.eclipse.org/jetty/). Я загрузил Причал 7 и распаковал его, и я установил Гагатовый плагин из доступного списка серверных адаптеров, но когда я пытаюсь настроить новый Гагатовый сервер, список типов сервера только содержит "Причал 6". Если я использую это и указываю на него на мое время выполнения сервера, когда я пытаюсь запустить его, я получаю следующую ошибку:
java.lang.NoClassDefFoundError: org/mortbay/start/Main Caused by: java.lang.ClassNotFoundException: org.mortbay.start.Main at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Exception in thread "main"
Я предполагаю, что мне нужен другой адаптер для запуска Причала 7, но я понятия не имею, где найти его.
Проблема в том, что имя пакета изменилось при переходе на Eclipse, а сотрудники Jetty все еще заняты.
Самый простой вариант - загрузить Jetty 6 из Codehaus ( http://dist.codehaus.org/jetty/ ), распаковать где-нибудь и использовать адаптер Jetty 6.
Лучше, чем использовать адаптеры WTP, я предпочитаю использовать встроенный причал. Я просто создаю обычный java-проект, назовем его «встроенный пристань». Я делаю исходный проект webapp требованием к этому проекту в разделе "Проекты" Путь сборки Java для свойств проекта. Затем я создаю класс, который запускает экземпляр причала следующим образом:
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
public class JettyServer {
public static void main(String[] args) {
Server server = new Server(8080);
WebAppContext context = new WebAppContext();
context.setResourceBase("../webapp-project/WebContent");
context.setDescriptor("../webapp-project/WebContent/WEB-INF/web.xml");
context.setContextPath("/");
context.setParentLoaderPriority(true);
server.setHandler(context);
try {
server.start();
server.join();
} catch (Exception e) {
e.printStackTrace();
}
}
}
В проекте встроенного причала я создаю папку «lib» и копирую все библиотеки из папки jetty / lib, затем добавляю библиотеки в библиотеки свойства проекта.
Запуск и отладка встроенного причала отлично работают для меня, перезагрузка jsp и классов работает как шарм