有没有办法在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
Run Code Online (Sandbox Code Playgroud)
我试过了
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/frontend" docBase="../../frontend/web-content">
</Context>
Run Code Online (Sandbox Code Playgroud)
但那没用./ web-content之前的整个路径似乎被忽略了.日志说:
The main resource set specified [/home/david/projects/tomcat/webapps/web-content] is not valid
Run Code Online (Sandbox Code Playgroud)
上下文容器的Tomcat 8文档说:
您可以为此目录或WAR文件指定绝对路径名,也可以指定相对于拥有主机的appBase目录的路径名.
这里的亲属是指appBase的严格子目录(不允许)吗?
设置绝对路径可以正常工作.配置
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/frontend" docBase="/home/david/projects/frontend/web-content">
</Context>
Run Code Online (Sandbox Code Playgroud)
有效,但它特定于我的电脑.所以我不能再进行修改来共享上下文配置.
我可以在tomcat服务器的appBase目录中创建一个符号链接,让它指向我的应用程序的web-content文件夹.这可以工作,但我会在linux和Windows机器上有不同的配置(符号链接).