Jetty - 为不同的应用程序版本使用符号链接

时间:2013-03-25 14:13:11

标签: java servlets jetty switching

我正在尝试配置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>

有没有办法启用此行为?还是我需要另一种方法?基本上我需要一种快速的方法来切换生产应用程序的版本,无需重大更改或重新启动服务器:)

1 个答案:

答案 0 :(得分:2)

使用Context based deployment

创建${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将接收更改并提供新设置。