1

我正在尝试配置码头以在不同的应用程序文件夹之间切换。例如:我有 2 个应用程序文件夹(包含 WEB-INF、类、war 等)App1 和 App2。我想在 linux "myapp" 中创建一个指向 App1 或 App2 的符号链接,并使用http://host.com/myapp/resource访问我的资源(即我的应用程序的 servlet) ...

我在我的 etc/webdefault.xml 文件中添加了以下行来启用别名,但没有用:

<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>

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

4

1 回答 1

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并保存它,码头将接受更改并提供新设置。

于 2013-03-27T17:24:43.693 回答