J'essaie de faire en sorte que ma servlet Tomcat télécharge un certain nombre de fichiers, mais j'ai Apache et Tomcat en cours d'exécution sur le même serveur, donc je suppose que cela ne fonctionne pas . J'ai testé sur des serveurs ne fonctionnant pas apache, et tout va bien.AccessControlException lors de la connexion au serveur HTTP à partir de la servlet Tomcat
Voici l'exception que je reçois lorsque je tente d'utiliser une nouvelle URL (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)
Comment puis-je utiliser http téléchargements via tomcat lors de l'exécution apache en même temps? Suis-je coincé?
EDIT:
Peu importe ce que je fais, je ne peux pas tomcat passé. Voici 03catalina.policy:
// ========== AUTORISATIONS CODE catalina ========================== =============
// 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";
};
Il est clair que je ne comprenais pas le problème, car je croyais ma seule différence de configuration pour être l'existence d'apache. Je vais essayer ceci et voir si cela fonctionne. Les dangers de l'utilisation de logiciels préconfigurés .... –
N'a pas fonctionné. Voir le commentaire –
Les modifications doivent être dans 50local.policy. –