我正在尝试配置jetty以在不同的应用程序文件夹之间切换。 例如:我有2个app文件夹(包含WEB-INF,类,war等)App1和App2。我想在linux“myapp”中创建一个符号链接,指向App1或App2并使用http://host.com/myapp/resource访问我的资源(即我的应用程序的servlet)......
我将etc / webdefault.xml文件中的以下行添加到enalbe别名中,但是没有用:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
<init-param>
<param-name>aliases</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
有没有办法启用此行为?还是我需要另一种方法?基本上我需要一种快速的方法来切换生产应用程序的版本,无需重大更改或重新启动服务器:)
答案 0 :(得分:2)
创建${jetty.home}/contexts/myapp.xml
并指定所需的映射。
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC
"-//Mort Bay Consulting//DTD Configure//EN"
"http://jetty.mortbay.org/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/myapp</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/App1</Set>
</Configure>
这使得上下文/myapp
由您的${jetty.home}/webapps/App1
目录提供。
如果仍然启用了热部署(默认情况下已启用)。然后只需编辑${jetty.home}/contexts/myapp.xml
并保存,jetty将接收更改并提供新设置。