Context.xml中的相对路径

大卫

有没有一种方法可以在Web应用程序的context.xml中设置docBase属性的相对路径,因此它位于tomcat服务器实例的appBase目录之外?

我希望能够在计算机之间共享上下文配置,并使该应用程序位于目录中,而不是war文件中。这样,我可以将类直接编译到该目录中(在我的项目开发目录中),并使tomcat使用这些类,而无需任何复制/打包。

我正在使用tomcat 8.0.0-RC5。我的目录布局是:

/home/david/projects/frontend/web-content          <-- the static html files
/home/david/projects/frontend/web-content/WEB-INF  <-- the WEB-INF with the web.xml
/home/david/projects/tomcat                        <-- tomcat base directory
/home/david/projects/tomcat/Catalina/localhost     <-- holds the frontend.xml context configuration

我试过了

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/frontend" docBase="../../frontend/web-content">
</Context>

但这没有用。/ web-content之前的整个路径似乎都被忽略了。日志显示:

The main resource set specified [/home/david/projects/tomcat/webapps/web-content] is not valid

上下文容器Tomcat 8文档说:

您可以为此目录或WAR文件指定绝对路径名,或者相对于拥有主机的appBase目录的路径名。

这里相对是不是指appBase的严格子目录(不允许..允许)?

设置绝对路径毫无问题。配置

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/frontend" docBase="/home/david/projects/frontend/web-content">
</Context>

可以,但是它特定于我的计算机。因此,我不能再共享上下文配置而不进行修改。

我可以在tomcat服务器的appBase目录内创建一个符号链接,并使其指向我的应用程序的Web内容文件夹。这可以工作,但是在Linux和Windows机器上我会有不同的配置(符号链接)。

马丁·博特

仅仅采用相对路径名的姓氏而忽略前几部分是Tomcat中的一个错误。相对路径名应该起作用或必须抛出错误。但是忽略零件是不好的。解决方法可能是使用如下所示的绝对路径名:<Context docBase="${catalina.home}/../www.war"

我只是在阅读Tomcat 8.0.15的更新日志。该错误应该是固定的(!):“正确处理上下文的docBase属性的相对值。”

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章