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

Description

Environnement
Adobe Experience Manager, toutes versions

Problème
Une erreur se produit dans la variable error.log qui signale "java.io.IOException: Autorisation refusée" 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)

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.

Résolution

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

    Sous Linux:

Exécutez cette commande :

ps -ef | grep java

Examinez les paramètres JVM recherchant -Djava.io.tmpdir

    Sous Windows, Linux ou Unix:

Accédez à http://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime

Rechercher 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 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).

Sur cette page