Problem

Ein Fehler tritt in error.log auf, der „java.io.IOException: Berechtigung verweigert“ anzeigt und der Stacktrace enthält „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)

Umgebung

Alle Versionen von AEM

Ursache

Der Benutzer, dem der AEM-Java-Prozess zugeordnet ist, hat keine Berechtigung in das Temp-Verzeichnis des Java-Prozesses zu schreiben.

Lösung

  1. Überprüfen Sie, ob der JVM-Parameter -Djava.io.tmpdir auf dem Java-Prozess gesetzt ist.

    Linux:

     a. Führen Sie diesen Befehl aus

    ps -ef | grep java 

    b. Überprüfen Sie die JVM-Parameter, die nach -Djava.io.tmpdir suchen.

    Windows, Linux oder UNIX:

     a. Gehen Sie zu http://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime

     b. Suchen Sie auf der Seite nach java.io.tmpdir.

  2. Kopieren Sie den Wert von java.io.tmpdir in die Zwischenablage.

  3. Wechseln Sie auf dem Betriebssystem zu diesem Pfad und gewähren Sie dem Benutzer, dem der Java-Prozess zugeordnet ist, vollen Lese-/Schreibzugriff auf diesen Ordner.

  4. Wenn Sie keinen java.io.tmpdir-Parameter gefunden haben, dann gewähren Sie dem Benutzer Zugriff auf das Standard-Temp-Verzeichnis des Betriebssystems.  In Linux und UNIX ist dieses Verzeichnis standardmäßig /tmp.  In Windows befindet sich das Verzeichnis im Stammverzeichnis des Benutzers z. B. C:\Users\aemuser\AppData\Local\Temp

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie