Как развернуть сервлет в Jetty? - PullRequest
4 голосов
/ 08 ноября 2010

Я создал простой сервлет, который хочу развернуть в Jetty 7.2. Jetty работает и может обслуживать страницы JSP на http://localhost:8080/jonas/test.jsp. Я запустил Jetty с помощью команды java -jar start.jar.

Я сохранил свой скомпилированный сервлет MyServlet.class на <my_jetty_directory>/webapps/jonas/WEB-INF/classes/MyServlet.class, а затем попытался получить доступ к этому сервлету на http://localhost:8080/jonas/servlets/MyServlet, но я получил ошибку HTTP 404.

HTTP ERROR 404

Problem accessing /jonas/servlet/MyServlet. Reason:

    Not Found

Есть ли что-то еще, что я должен сделать? Где в файловой структуре Jetty я должен поместить MySerlvet.class?


Я создал простой файл web.xml, сохранил его в <my_jetty_directory>/webapps/jonas/WEB-INF/web.xml и перезапустил мой Jetty, но он не работает. Вот мой простой web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>MyServlet</servlet-class>
  </servlet>
</web-app>

У меня была похожая проблема с JSP, которая теперь решается: Как развернуть файл JSP на веб-сервере Jetty?

Ответы [ 2 ]

4 голосов
/ 08 ноября 2010

Вы должны отобразить свой сервлет в web.xml, используя <servlet> и <servlet-mapping>, или аннотировать его с помощью @WebServlet, если используете сервлет 3.0.

0 голосов
/ 08 ноября 2010

Я думаю, что должен быть файл config или readme.txt в папке установки или в подпапках lib, bin или conf вашего Jetty Server. Прочитайте их, и вы получите специальные каталоги для ваших классов. Задать каталог классов на сервере Jetty или хотя бы запомнить его. Это будут классы, запускаемые при запуске сервера Jetty.

Что касается пути к классам, то в java есть способ запускать классы из указанных папок. Вы можете добавить -:

* "." at the end of classpath variable in WINDOWS NT platform
* set CLASSPATH=%CLASSPATH%;. in command mode or AUTOEXEC.bat of other WINDOWS
* set CLASSPATH=%CLASSPATH%:. and export CLASSPATH in linux

С этим "." - fullstop, в переменной classpath вы заставите команду java искать классы в этом текущем каталоге.

...