我想在Tomcat 8下使用符号链接JSP目录.
它在Tomcat 7中也可以这样工作:
<Context allowLinking="true">
Run Code Online (Sandbox Code Playgroud)
但似乎Tomcat 8放弃了这个功能,它开始使用资源
(http://tomcat.apache.org/migration-8.html#Web_application_resources).
我的示例用法:
ROOT/jsp目录 - > linksto - >/var/tmp/realplaceofjspfiles /
配置错误:
ROOT/META-INF/context.xml的:
<Context>
<Resources allowLinking="true">
<PreResources className="org.apache.catalina.webresources.DirResourceSet" base="/var/tmp/realplaceofjspfiles" internalPath="jspdirectory"/>
</Resources>
</Context>
Run Code Online (Sandbox Code Playgroud)
它为我丢掉了这个例外:
07-Mar-2014 04:09:12.113 WARNING [localhost-startStop-1] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Context/Resources/PreResources} Setting property 'internalPath' to 'jspdirectory' did not find a matching
property.
07-Mar-2014 04:09:12.114 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1780)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at …Run Code Online (Sandbox Code Playgroud)