Запуск сервера Jetty 7 в eclipse?

Я пытаюсь настроить Eclipse для запуска и развертывания моих проектов на сервере Jetty 7 (самая старая версия, доступная из http://download.eclipse.org/jetty/). Я загрузил Jetty 7 и распаковал его, и я установил плагин Jetty из списка доступных серверных адаптеров, но когда я пытаюсь настроить новый сервер Jetty, список типов серверов содержит только "Jetty 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" 

Я предполагаю, что мне нужен другой адаптер для запуска Jetty 7, но я не знаю, где его найти.

Ответы

Ответ 1

Проблема заключается в том, что имя пакета изменилось с переходом на Eclipse, и люди Jetty все еще заняты.

Самый простой способ - загрузить Jetty 6 из Codehaus (http://dist.codehaus.org/jetty/), распаковать его где-нибудь и использовать адаптер Jetty 6.

Ответ 2

Лучше, чем использовать адаптеры WTP, я предпочитаю использовать встроенный причал. Я просто создаю обычный проект java, позволю назвать "embedded-jetty". Я делаю исходный проект webapp требованием к этому проекту в разделе "Проекты" Java Build Путь к свойствам проекта. Чем я создаю класс, который запускает экземпляр причала, например:

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, а затем добавляю библиотеки в Библиотеки свойств проекта.

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

Ответ 4

Плагин Eclipse Run-Jetty-Run имеет хорошую поддержку как для Jetty7, так и для Jetty 8, и проще в использовании, чем WTP Eclipse для меня.

Стоит попробовать.:)

http://code.google.com/p/run-jetty-run/

Ответ 5

Вы можете использовать плагин Jetty Maven для настройки сервера причала в своем затмении очень легко. Включите в себя следующие элементы 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 config файлы для этого.

Узнайте больше о целях и конфигурации на причале,