Fehler wegen verweigerter Berechtigung von java.io.File.createTempFile

Beschreibung

Umgebung
Adobe Experience Manager, alle Versionen

Problem
Ein Fehler tritt im error.log dass java.io.IOException: Erlaubnis verweigert und die Stapelablaufverfolgung java.io.File.createTempFile enthalten.

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)

Ursache

Der Benutzer, dem der AEM Java-Prozess gehört, verfügt nicht über die entsprechenden Berechtigungen zum Schreiben im temporären Verzeichnis des Java-Prozesses.

Lösung

Lösung
Ermitteln Sie, ob der JVM-Parameter -Djava.io.tmpdir wird im Java-Prozess festgelegt.

    unter Linux:

Führen Sie diesen Befehl aus:

ps -ef | grep java

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

    Unter Windows, Linux oder Unix:

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

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

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

  • Wechseln Sie zu diesem Pfad auf dem Betriebssystem und gewähren Sie dem Benutzer, dem der Java-Prozess gehört, uneingeschränkten Lese-/Schreibzugriff auf diesen Ordner.

  • Wenn Sie keine java.io.tmpdir und gewähren dem Benutzer Zugriff auf das standardmäßige temporäre Verzeichnis des Betriebssystems.

    In Linux und Unix ist dieser Ordner /tmp Standardmäßig.

    Unter Windows befindet sich der Ordner im Basisverzeichnis des Benutzers (z. B.: C:\Users\aemuser\AppData\Local\Temp).

Auf dieser Seite