我正在尝试配置 Jetty 并面临这个问题:
root@jans-dev:~/jetty-base# java -jar $JETTY_HOME/start.jar --add-to-start=http,deploy
ERROR : Unknown module='http'. List available with --list-modules
Usage: java -jar $JETTY_HOME/start.jar [options] [properties] [configs]
java -jar $JETTY_HOME/start.jar --help # for more information
背景:
root
在 Ubuntu 上的
lxc
容器上安装为
sudo apt install jetty9
export JETTY_HOME=/usr/share/jetty
export JETTY_BASE=/root/jetty-base
在尝试添加模块之前,我已成功执行以下命令。
root@jans-dev:~/jetty-base# java -jar $JETTY_HOME/start.jar --create-startd
MKDIR : ${jetty.base}/start.d
INFO : Base directory was modified
另外,当我运行
--list-modules
时,它是空的:
root@jans-dev:~/jetty-base# java -jar $JETTY_HOME/start.jar --list-modules
Available Modules:
==================
tags: [-internal]
Enabled Modules:
================
root@jans-dev:~/jetty-base#
我不确定我在这里错过了什么。如何使模块可供 Jetty 使用?我也检查了这个参考
听起来你的 Linux 发行版已经破坏了 jetty 发行版。
您的
/usr/share/jetty
目录是否包含目录 etc/
、lib/
和 modules/
?如果不是,那么这不是有效的 ${jetty-home}
。
也许你的 Linux 发行版把 jetty-home 放在了其他地方? 但这也是无效的,因为
start.jar
应该与其他目录位于同一目录中。
正确的
${jetty.home}
是什么样子的示例...
$ ls -la jetty-home-9.4.44.v20210927
total 776
drwxr-xr-x 6 joakim joakim 4096 Sep 27 18:12 ./
drwxr-xr-x 74 joakim joakim 12288 Nov 2 15:32 ../
drwxr-xr-x 2 joakim joakim 4096 Oct 7 10:07 bin/
drwxr-xr-x 4 joakim joakim 4096 Oct 14 07:17 etc/
drwxr-xr-x 14 joakim joakim 4096 Oct 7 10:07 lib/
-rw-r--r-- 1 joakim joakim 30012 Sep 27 18:12 license-eplv10-aslv20.html
drwxr-xr-x 22 joakim joakim 4096 Oct 7 10:07 modules/
-rw-r--r-- 1 joakim joakim 6262 Sep 27 18:12 notice.html
-rw-r--r-- 1 joakim joakim 163958 Sep 27 18:10 start.jar
-rw-r--r-- 1 joakim joakim 550572 Sep 27 17:44 VERSION.txt
过去,有一些 Linux 发行版尝试将各种 Jetty 库(
${jetty.home}/lib/
中的 jar 文件)作为单独的依赖项放入其发行版设置中,但这对于像 Jetty 这样的模块化 Servlet/Web 容器来说不是有效的设置。大多数发行版已经意识到这一点,并且现在已经恢复到正常的设置。
最快的修复方法是从您的 Linux 发行版中删除这个错误的 Jetty 软件包,然后下载并使用官方 tarball。
https://search.maven.org/artifact/org.eclipse.jetty/jetty-home
我在 ubuntu 22.04 上也有同样的问题,但如果我在运行命令之前先进入 JETTY_HOME 文件夹,它确实可以工作:
pushd $JETTY_HOME
java -jar $JETTY_HOME/start.jar --list-modules