1

根据http://www.eclipse.org/jetty/documentation/current/quickstart-running-jetty.html,可以在 jetty 9.x 的基本目录中管理 Web 应用程序。demo-base该指南解释了可以放在其中的内容,并通过指向二进制分发中的目录来举例说明。然而,为了使部署成功,指出在这样的码头基地中实际需要什么是有用的,例如,这样

cd /path/to/my-base/
java -jar ~/jetty-distribution-9.2.3.v20140905/start.jar jetty.home=~/jetty-distribution-9.2.3.v20140905/ jetty.base=.

成功。将最小的有效 war 文件(只有一个 jsf 文件)放入/path/to/my-base/path/to/my-base/webapps/失败WARNING: Nothing to start, exiting ...,尽管部署最小的应用程序或显示需要添加的有用警告是有意义的。

需要添加什么才能从单独的基本目录部署应用程序?

4

1 回答 1

0

Jetty 可以通过 start.jar 的标志为您完成此操作

文档中有一个例子,这里: http: //www.eclipse.org/jetty/documentation/9.3.0.v20150612/quickstart-running-jetty.html

“以下命令:创建一个新的基本目录;启用 HTTP 连接器和 Web 应用程序部署程序;复制要部署的演示 Web 应用程序。

简化:

mkdir /home/me/mybase
cd /home/me/mybase
java -jar $JETTY_HOME/start.jar --add-to-startd=http,deploy

然后复制你的war,如果你使用ROOT.war,它会映射到/,并启动jetty:

cp my.war webapps/ROOT.war
java -jar $JETTY_HOME/start.jar

或者,如果您安装了 docker,您也可以通过复制它来获取官方设置,如下所示:

首先,让 docker 下载并运行 jetty,将主机上的目录映射到 docker 容器。我已经在映射 webapps,所以我只是继续使用那个映射。这会在完成后删除容器(-rm),因此它是干净的,它会启动一个交互式 bash shell,将您直接登录到一个官方准系统码头容器,该容器已准备好部署到 webapps 目录中的战争(正是我们想要的!)

sudo docker run --rm -it -v /home/myuser/jetty/webapps:/var/lib/jetty/webapps jetty:latest /bin/bash

如果你在容器上运行和环境,你会看到:

JETTY_BASE=/var/lib/jetty

只需 tar 这个基础,将 tar 复制到映射回 localhost 的 webapps 目录,然后退出。(请随意映射

root@f99cc00c9c77:/var/lib# tar -czvf ../jetty-base.tar.gz .
root@f99cc00c9c77:/var/lib# cp ../jetty-base.tar.gz jetty/webapps/
root@f99cc00c9c77:/var/lib# exit

回到本地主机,你有一个官方码头基地的焦油!docker 容器应该在退出时停止,您可以使用 sudo docker ps 进行测试,它应该显示一个空列表(只是标题)。

只是为了完成这个,回到主机上,创建一个基本目录(当然,作为 myuser,而不是 root):

mkdir ~/jetty/localbase
cp ~/jetty/jetty-base.tar.gz ~/jetty/localbase/
cd ~/jetty/localbase/
tar xvzf jetty-base.tar.gz

然后像以前一样启动它:

java -jar $JETTY_HOME/start.jar
于 2016-05-30T12:16:28.483 回答