Erreur d’autorisation refusée de la part de java.io.File.createTempFile
Si vous obtenez une erreur de refus de permission de java.io.File.createTempFile
, découvrez si le paramètre JVM -Djava.io.tmpdir
est défini sur le processus java. Si vous n’avez pas trouvé de paramètre java.io.tmpdir
, accordez à l’utilisateur l’accès au répertoire temporaire par défaut du système d’exploitation.
Description description
Environnement
Adobe Experience Manager (AEM) (toutes versions)
Problème/Symptômes
Une erreur se produit dans le error.log
qui signale java.io.IOException: Permission denied
et la trace de la pile contient java.io.File.createTempFile
.
01.06.2017 16:34:02.631 *ERROR* [ qtp1085110594-4453] org.apache.felix.http.jetty Exception while processing request to /system/console/configMgr/com.adobe.cq.experiencelog.impl.ExperienceLogConfigServlet (java.io.IOException: Permission denied)
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(File.java:2024)
at org.apache.felix.cm.file.FilePersistenceManager._store(FilePersistenceManager.java:699)
at org.apache.felix.cm.file.FilePersistenceManager.store(FilePersistenceManager.java:660)
at org.apache.felix.cm.impl.CachingPersistenceManagerProxy.store(CachingPersistenceManagerProxy.java:242)
at org.apache.felix.cm.impl.ConfigurationImpl.storeNewConfiguration(ConfigurationImpl.java:462)
at org.apache.felix.cm.impl.ConfigurationImpl.<init>(ConfigurationImpl.java:183)
Résolution resolution
Découvrez si le paramètre JVM -Djava.io.tmpdir
est défini sur le processus Java.
Sous Linux :
-
Exécutez cette commande :
code language-none ps -ef | grep java
-
Examinez les paramètres JVM recherchant
-Djava.io.tmpdir
.
Sous Windows, Linux ou Unix :
-
Accédez à https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime
-
Recherchez
java.io.tmpdir
sur la page. -
Copiez la valeur de
java.io.tmpdir
dans le Presse-papiers. -
Accédez à ce chemin d’accès sur le système d’exploitation et accordez à l’utilisateur propriétaire du processus Java un accès complet en lecture/écriture à ce dossier.
-
Si vous n’avez pas trouvé de paramètre
java.io.tmpdir
, accordez à l’utilisateur l’accès au répertoire temporaire par défaut du système d’exploitation.- Sous Linux et Unix, ce répertoire est
/tmp
par défaut. - Sous Windows, le répertoire se trouve sous le répertoire racine de l’utilisateur (par exemple :
C:\Users\aemuser\AppData\Local\Temp
).
- Sous Linux et Unix, ce répertoire est
Cause
L’utilisateur propriétaire du processus java AEM ne dispose pas des autorisations appropriées pour écrire dans le répertoire temporaire du processus java.