我们必须在此基础上我想在一些servlet应用程序使用持久存储B树一本地开发的三重店.而不是嵌入在servlet的.war B树索引文件,我想将它们存储在一个已知的位置,并有小服务程序直接访问它们.这一切都在Jetty中工作,但是当我在Tomcat中尝试它时会引发安全性异常.我听说Tomcat的安全模型需要一个servlet明确的权限来访问其中的.war被解压的目录树之外的文件.如果我Tomcat的(5.5版)文档正确理解,下面添加到catalina.policy
应该允许servlet访问其中索引文件的目录:
grant codeBase "jar:file:${catalina.home}/webapps/mytestapp/-" { permission java.io.FilePermission "/var/data/tdb/-", "read, write, delete"; }
但是,我仍然得到一个安全例外:
java.io.FileNotFoundException: /var/data/tdb/kb/node2id.idn (Permission denied) at java.io.RandomAccessFile.open(Native Method) ...
勾选明显的哑错误:我已检查索引文件位于正确的位置,具有正确的权限,并且没有损坏.我将非常感谢您对我在安全设置中出错的任何建议或提示.