Tomcat拒绝访问爆炸的war目录中的资源文件

时间:2017-08-25 22:16:36

标签: java tomcat7 war

我们在Tomcat 7.0.65上部署了一个WAR应用程序。此应用程序使用一个库,该库在其资源目录中包含一堆polygon.txt文件。每当调用库时,它都会在爆炸的war目录中的jar文件上抛出文件权限异常。

这是错误:

Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "/var/lib/tomcat7/webapps/**/WEB-INF/lib/table-service-1.37.jar" "read")
    at org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1659) ~[catalina-7.0.65.jar:7.0.65]
    at com.**.PropertyGeometryDAO.initialize(PropertyGeometryDAO.java:47) ~[table-service-1.37.jar:?]

在代码中的这一行抛出:

try (InputStream stream = getClass().getClassLoader().getResourceAsStream(fileName))

以下是定义权限的catalina.policy文件:

permission java.io.FilePermission "/usr/share/tomcat7/webapps/*", "read";

我们还在同一个Tomcat上使用相同的库部署了单独的WAR。

1 个答案:

答案 0 :(得分:1)

例外是

"/var/lib/tomcat7/webapps/**/WEB-INF/lib/table-service-1.37.jar"

但您的许可是

permission java.io.FilePermission "/usr/share/tomcat7/webapps/*", "read";