Erreur d’autorisation refusée de la part de java.io.File.createTempFile

Dernière mise à jour : 2023-11-17

Si vous obtenez une erreur de refus d’autorisation 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 java.io.tmpdir , puis accordez à l’utilisateur l’accès au répertoire temporaire du système d’exploitation par défaut.

Description

Environnement

Adobe Experience Manager (AEM) (toutes versions)

Problème/Symptômes

Une erreur se produit dans la variable error.log rapports java.io.IOException: Permission denied et la trace de la pile contient java.io.File.createTempFile dans .

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

Déterminer si le paramètre JVM -Djava.io.tmpdir est défini sur le processus java.

Sous Linux:

  1. Exécutez cette commande :

    ps -ef | grep java
    
  2. Examinez les paramètres JVM recherchant -Djava.io.tmpdir

Sous Windows, Linux ou Unix:

  1. Accédez à https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime
  2. Recherchez java.io.tmpdir sur la page.
  3. Copiez la valeur de java.io.tmpdir dans le Presse-papiers.
  4. 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.
  5. Si vous n’avez pas trouvé de java.io.tmpdir, puis accordez à l’utilisateur l’accès au répertoire temporaire du système d’exploitation par défaut.
    • 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).

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.

Sur cette page