2010-07-24 4 views
4

Я хотел бы начать с разработки веб-разработок Java. Сначала я хотел бы настроить хорошую среду разработки, используя сервер Jetty в Eclipse, что позволит сократить короткие циклы разработки. Но я борюсь за это.Как настроить Jetty с Eclipse без плагина?

Есть другие вопросы, но они для меня старые или неполные. Я видел предложения по использованию плагина, но плагины, похоже, устарели. Кроме того, я не хочу, чтобы я использовал Maven в начале.

Я видел пути создания Jetty в Eclipse, без плагина:

Но для меня, как новичка на стороне сервера Java и Jetty, они являются неполными.

Я выполнил шаги в связанной статье. Но на Шаг 2 Я не знаю, какой контент web.xml должен иметь, я создал пустой XML-файл. И когда я пытаюсь запустить сервер на шаге 4 я java.lang.ClassNotFoundException: org.mortbay.jetty.webapp.WebAppContext

Как настроить Jetty с Eclipse, без плагина?

UPDATE

Как свиристель предложил, я должен изменить класс, так как он изменился с Jetty 6 до Jetty 7. Я снова начал сервер Jetty и теперь я получаю NoSuchMethodException:

2010-07-25 13:37:22.849:WARN::Config error at <Set name="var">../sampleweb/sampleweb_webroot</Set> java.lang.NoSuchMethodException: class org.eclipse.jetty.webapp.WebAppContext.setVar(class java.lang.String) 
2010-07-25 13:37:22.849:WARN::Unable to reach node goal: started 
java.lang.NoSuchMethodException: class org.eclipse.jetty.webapp.WebAppContext.setVar(class java.lang.String) 

My sampleweb.xml, который находится в каталоге context в моем проекте Jetty и имеет этот материал, взятый из статьи:

<?xml version="1.0" encoding="UTF-8"?> 
<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
<Set name="contextPath">/app</Set> 
<Set name="var">../sampleweb/sampleweb_webroot</Set> 
<Set name="extractWAR">true</Set> 
<Set name="copyWebDir">false</Set> 
<Set name="defaultDescriptor"> 
<SystemProperty name="jetty.home" default="."/> 
/etc/webdefault.xml</Set> 
</Configure> 

Я хотел бы создать простой сервлет Hello World.

+1

Из того, что я прочитал на сайте Jetty, Jetty включает контейнер сервлетов, но не контейнер для развертываний EE, таких как EAR. – Kwebble

+0

@Kwebble: Хорошо, но я имею в виду, что я хочу изучить серверную Java. – Jonas

+0

ОК, для этого Jetty - хороший вариант. – Kwebble

ответ

0

Вам нужен адаптер сервера пристани - обратите внимание на установке нового сервера - которые позволяют работать с распакованным причалом 6.

0

Руководство неполно в том, что стек технологиях не были выбраны для вас. Пустой web.xml должен работать нормально - но он также ничего не будет опубликован Jetty. Другими словами, в вашем приложении есть точка доступа.

Должно быть много ссылок на web.xml. См. this example. Подэлемент <servlet-class><servlet> указывает класс, который реализует javax.servlet.Servlet, который является рудиментарным интерфейсом для классов, обрабатывающих веб-запросы.

С другой стороны, вы можете использовать что-то вроде рамки Spring, тогда вы используете другой подход, в котором вы сами регистрируете Spring как сервлет (или прослушиватель сервлетов). См. this example from the official documentation. Существует множество других веб-фреймворков, которые требуют разных макетов web.xml.

Что касается вашей второй проблемы, вы используете Jetty 6?Руководство написано для Jetty 6 и не будет работать для более новых версий, поскольку имена классов изменились. И если вы используете Jetty 6, подумайте об установке адаптера сервера Jetty, который предлагает Thorbjørn Ravn Andersen в его ответе.

+0

Спасибо, я использую Jetty 7 и теперь изменил имя класса. Я не понимаю, как мне настроить свой 'web.xml' для простого сервлета Hello World. Теперь я получил «NoSuchMethodException», посмотрю мой обновленный вопрос. – Jonas

Смежные вопросы