根据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 ...
,尽管部署最小应用程序或显示有用警告是有意义的待补充。
需要添加哪些内容才能从单独的基本目录部署应用程序?
答案 0 :(得分:0)
Jetty可以通过start.jar
的标志为你做这个文档中有一个例外,在这里:http://www.eclipse.org/jetty/documentation/9.3.0.v20150612/quickstart-running-jetty.html
"以下命令:创建一个新的基目录;启用HTTP连接器和Web应用程序部署程序;复制要部署的演示webapp。
简化为:
mkdir /home/me/mybase
cd /home/me/mybase
java -jar $JETTY_HOME/start.jar --add-to-startd=http,deploy
然后复制你的战争,如果你使用ROOT.war,它将映射到/,并启动jetty:
cp my.war webapps/ROOT.war
java -jar $JETTY_HOME/start.jar
或者,如果你安装了docker,你也可以通过复制它来获得官方设置,如下所示:
首先,让docker下载并运行jetty,将主机上的目录映射到docker容器。我已经映射了webapps,所以我继续使用该映射。这样就完成后移除了容器(-rm),所以它会干净并启动一个交互式bash shell,将你直接登录到一个正式的准系统jetty容器中,该容器已经准备好将战争部署到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复制到webapps目录,该目录将映射回localhost,然后退出。 (随意映射
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