Запуск сервера Jetty 7 в eclipse?
Я пытаюсь настроить Eclipse для запуска и развертывания своих проектов на причал 7 сервер (самая старая версия доступна с http://download.eclipse.org/jetty/). Я скачал причал 7 и распаковали его, и я установил плагин причал из доступных серверных сетевых адаптеров, но когда я пытаюсь настроить новый сервер Jetty, тип сервера содержит только "6 причал". Если я использую это и указываю на мою серверную среду выполнения, при попытке запустить ее я получаю следующее ошибка:
java.lang.NoClassDefFoundError: org/mortbay/start/Main Caused by: java.lang.ClassNotFoundException: org.mortbay.start.Main at java.net.URLClassLoader.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"
Я предполагаю, что мне нужен другой адаптер для запуска Jetty 7, но я понятия не имею, где его найти.
5 ответов
проблема в том, что имя пакета изменилось с миграцией в Eclipse, и люди причала все еще заняты.
самый простой вариант-загрузить Jetty 6 из Codehaus (http://dist.codehaus.org/jetty/), распакуйте его где-нибудь и используйте адаптер Jetty 6.
лучше, чем с помощью адаптеров WTP я предпочитаю использовать встроенный причал. Я просто создаю обычный java-проект, назовем его "embedded-jetty". Я делаю исходный проект webapp требованием к этому проекту в разделе проектов Путь сборки Java свойств проекта. Чем я создаю класс, который запускает экземпляр jetty следующим образом:
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();
}
}
}
в проекте embedded-jetty я создаю папку " lib " и копирую все библиотеки из папки jetty/lib, затем добавляю библиотеки о библиотеках свойств проекта.
запуск и отладка Jetty embedded отлично работает для меня, перезагрузка JSP и класса работает как шарм
есть новый (официальный!) Плагин Jetty WTP, поддерживающий Jetty 7.x и 8.x:http://wiki.eclipse.org/Jetty_WTP_Plugin
выполнить-причал-запустить плагин в Eclipse есть также поддержка Jetty7 и Jetty 8 , и проще в использовании, чем WTP Eclipse для меня .
стоит попробовать. :)
вы можете использовать плагин Jetty Maven для настройки сервера jetty в вашем eclipse очень легко. Включите в себя следующие элементы pom.xml
<jetty.version>9.3.0.M1</jetty.version>
<!-- JETTY DEPENDENCIES -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>${jetty.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlets</artifactId>
<version>${jetty.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-ant</artifactId>
<version>${jetty.version}</version>
</dependency>
и в управлении плагинами вашего pom,
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<stopKey>keyStop</stopKey>
<stopPort>8181</stopPort>
<httpConnector>
<host>0.0.0.0</host> //also localhost or IP address
<port>8080</port>
</httpConnector>
</configuration>
</plugin>
или вы можете отделить конфигурацию сервера в отдельном jetty-.xml
файлы. См.настройка контейнера причала дополнительные.
теперь щелкните правой кнопкой мыши проект maven и запустите цель,
mvn jetty:run
начать сервер на порту 8080 по умолчанию. И чтобы остановить сервер,
mvn jetty:stop
если не указано, Jetty создаст экземпляр ServerConnector слушаю по порту
8080
. Этот номер порта по умолчанию можно изменить использование системного свойстваjetty.http.port
в командной строке, для пример,mvn -Djetty.http.port=9999 jetty:run
. Обратите внимание, что с jetty-9.0 больше невозможно настроить соединитель https непосредственно в pom.xml: вам нужно использовать jetty xml конфигурационные файлы делать он.
подробнее о целях и конфигурации на сайте причала,