首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Context.xml中的相对路径

Context.xml中的相对路径
EN

Stack Overflow用户
提问于 2013-10-22 12:38:16
回答 1查看 9K关注 0票数 6

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

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

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

代码语言:javascript
复制
/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

我试过了

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/frontend" docBase="../../frontend/web-content">
</Context>

但这不起作用。在/web内容之前的整个路径似乎被忽略了。日志上写着:

代码语言:javascript
复制
The main resource set specified [/home/david/projects/tomcat/webapps/web-content] is not valid

上下文容器的Tomcat 8文件说:

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

相对在这里是否意味着appBase的一个严格子目录(不..。允许)?

设置绝对路径是没有问题的。配置

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/frontend" docBase="/home/david/projects/frontend/web-content">
</Context>

工作,但它是特定于我的电脑。因此,我不能在不修改的情况下共享上下文配置。

我可以在tomcat服务器的appBase目录中创建一个符号链接,并让它指向我的应用程序的web内容文件夹。这是可行的,但我在linux和windows机器上会有不同的配置(符号链接)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-17 11:54:44

只取相对路径名的姓氏,忽略前面的部分,很可能是tomcat中的一个bug。相对路径名应该有效,或者必须抛出错误。但是忽略部分是不好的。解决方法可能是使用如下绝对路径名称:<Context docBase="${catalina.home}/../www.war"

我只是读了一下Tomcat 8.0.15的变化。错误应该是固定的(!):“正确处理上下文的docBase属性的相对值。”

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19518107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档