Запуск сервера 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 для меня .

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

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


вы можете использовать плагин 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 конфигурационные файлы делать он.

подробнее о целях и конфигурации на сайте причала,