Jetty: установка на Ubuntu

Автор: | 11/04/2015
 

Jetty_Logo-150x93Jetty — еще один контейнер сервлетов, аналог Apache Tomcat.

Установка выполняется на:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.3 LTS
Release:	14.04
Codename:	trusty

Для работы Jetty требуется Java, установка Oracle Java 8 описана тут>>>.

Находим последнюю актуальную версию тут>>>.

Загружаем, распаковываем:

# wget http://download.eclipse.org/jetty/stable-9/dist/jetty-distribution-9.3.5.v20151012.tar.gz
# tar xfp jetty-distribution-9.3.5.v20151012.tar.gz

Перемещаем каталог с Jetty в удобное место, например — /usr/local/bin:

# mv jetty-distribution-9.3.5.v20151012 /usr/local/bin/jetty

Добавляем пользователя, под которым будет работать сервер:

# useradd jetty -U -s /bin/false
# chown -R jetty:jetty /usr/local/bin/jetty/

Копируем init-скрипт:

# cp /usr/local/bin/jetty/bin/jetty.sh /etc/init.d/jetty

Файлы конфигурации, которые будут считываться Jetty, описаны в скрипте /usr/local/bin/jetty/bin/jetty.sh:

...
##################################################
# Read any configuration files
##################################################
ETC=/etc
if [ $UID != 0 ]
then
  ETC=$HOME/etc
fi

for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do
  if [ -f "$CONFIG" ] ; then
    readConfig "$CONFIG"
  fi
done
...

Создаем файл /etc/default/jetty с таким содержимым:

JAVA_HOME=/usr/bin/java
JETTY_HOME=/usr/local/bin/jetty
NO_START=0
JETTY_ARGS=jetty.port=8085
JETTY_HOST=0.0.0.0
JETTY_USER=jetty

Параметр NO_START=0 указывает на запуск Jetty во время старта системы.

Запускаем:

# service jetty start
Starting Jetty: OK Tue Nov  3 09:53:56 UTC 2015

Проверяем порт:

# netstat -anp | grep 8085
tcp6       0      0 :::8085                 :::*                    LISTEN      7436/java

Пробуем подключиться:

# curl localhost:8085
<HTML>
<HEAD>
<TITLE>Error 404 - Not Found</TITLE>
<BODY>
<H2>Error 404 - Not Found.</H2>
...

Работает.

Ощибка 404 возникает потому что в данный момент нет ни одного приложения.

Добавляем новое:

$ echo "Hello from Jetty" > index.jsp

Создаем war-архив:

$ jar cf test.war index.jsp

Его содержимое:

$ jar tf test.war
META-INF/
META-INF/MANIFEST.MF
index.jsp

Копируем в каталог /usr/local/bin/jetty/webapps/:

$ cp test.war /usr/local/bin/jetty/webapps/

Проверяем:

$ curl localhost:8085/test/index.jsp
Hello from Jetty

Готово.