Context が存在できる場所は 4 つあります。
- tomcatdir/conf/server.xml
- tomcatdir/conf/context.xml
- tomcatdir/conf/Catalina/localhost/appname.xml
- tomcatdir/webapps/アプリ名/META-INF/context.xml
tomcat 8 の場合、allowlinking 属性は Context ではなく Resources タグで指定する必要があります。私の tomcatdir/conf/context.xml は次のようになります
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<Resources allowLinking="true" cachingAllowed="true" cacheMaxSize="100000" />
</Context>
この解決策は今私にとってうまくいきます。しかし、この解決策にたどり着く前に犯した過ちも共有したいと思います。
tomcatdir/conf/server.xml と tomcatdir/conf/context.xml の両方でリソースを定義しました。また、tomcatdir/conf/server.xml のみ allowLinking="true" が設定されていました。
私が見つけたのは、allowLinking を指定しない場合、それを false に設定するのと同じであるということです。そこで、server.xml から Resources タグを削除し、allowLinking="true" 属性を含む tomcatdir/conf/context.xml のみを残しました。