我试图让我的tomcat的servlet下载多个文件,但我有Apache和Tomcat在同一台服务器上运行,所以我想这就是为什么它不工作。我在不运行Apache的服务器上测试过,一切都很好。的AccessControlException连接到HTTP服务器从Tomcat Servlet时
这里的时候我尝试使用新的网址(fileUrl).openStream(),我发现了异常:
Opening input stream Attempted to download: http://www.stefankendall.com/files/test.txt java.security.AccessControlException: access denied (java.net.SocketPermission www.stefankendall.com:80 connect,resolve)
如何通过Tomcat的运行HTTP下载,而在同一时间运行的Apache?我卡住了吗?
编辑:
无论我做什么,我都无法超越tomcat。这里的03catalina.policy:
// ========== CATALINA CODE PERMISSIONS ========================== =============
// These permissions apply to the logging API
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
permission java.util.PropertyPermission "java.util.logging.config.class", "read";
permission java.util.PropertyPermission "java.util.logging.config.file", "read";
permission java.lang.RuntimePermission "shutdownHooks";
permission java.io.FilePermission "${catalina.base}${file.separator}conf${file.separator}logging.properties", "read";
permission java.util.PropertyPermission "catalina.base", "read";
permission java.util.logging.LoggingPermission "control";
permission java.io.FilePermission "${catalina.base}${file.separator}logs", "read, write";
permission java.io.FilePermission "${catalina.base}${file.separator}logs${file.separator}*", "read, write";
permission java.lang.RuntimePermission "getClassLoader";
// To enable per context logging configuration, permit read access to the appropriate file.
// Be sure that the logging configuration is secure before enabling such access
// eg for the examples web application:
// permission java.io.FilePermission "${catalina.base}${file.separator}webapps${file.separator}examples${file.separator}WEB-INF${file.separator}classes${file.separator}logging.properties", "read";
};
// These permissions apply to the server startup code
grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
permission java.security.AllPermission;
permission java.net.socketPermission "*:80", "connect, resolve";
};
// These permissions apply to the servlet API classes
// and those that are shared across all class loaders
// located in the "lib" directory
grant codeBase "file:${catalina.home}/lib/-" {
permission java.security.AllPermission;
permission java.net.socketPermission "*:80", "connect, resolve";
};
grant codeBase "file:${catalina.home}/webapps/-" {
permission java.security.AllPermission;
permission java.net.socketPermission "*:80", "connect, resolve";
};
行显然,我不明白的问题,因为我相信我的唯一区别的设置是阿帕奇的存在。我会试试看看它是否有效。使用预配置软件的危险.... – 2009-10-08 17:20:01
没有工作。见评论。 – 2009-10-08 19:18:19
更改需要在50local.policy中。 – 2009-10-08 20:10:05