Запуск сервера Jetty 7 в затмении? - PullRequest
14 голосов
/ 10 марта 2010

Я пытаюсь настроить 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, но я не знаю, где его найти.

Ответы [ 5 ]

22 голосов
/ 28 мая 2010

Лучше, чем использовать адаптеры WTP. Я предпочитаю использовать встроенный причал. Я просто создаю обычный Java-проект, назовем его «внедренный джетти». Я делаю оригинальный проект веб-приложения требованием к этому проекту в разделе "Проекты" 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();
  }
 }
}

В проекте встроенного Jetty я создаю папку "lib" и копирую все библиотеки из папки Jetty / lib, затем добавляю библиотеки в библиотеки свойств проекта.

Запуск и отладка встроенного Jetty отлично работает для меня, перезагрузка jsp и класса работает как чудо

22 голосов
/ 24 ноября 2010

Существует новый (официальный!) Плагин Jetty WTP, поддерживающий Jetty 7.x и 8.x: http://wiki.eclipse.org/Jetty_WTP_Plugin

2 голосов
/ 10 марта 2010

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

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

1 голос
/ 19 декабря 2011

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

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

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

0 голосов
/ 14 декабря 2015

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

и в управления плагинами вашей помпы

<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.

Узнайте больше о целях и настройкена сайте Jetty,

...