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

Letzte Aktualisierung: 2023-11-17

Wenn Sie den Fehler "Berechtigung verweigert"von erhalten java.io.File.createTempFile, ermitteln Sie, ob der JVM-Parameter -Djava.io.tmpdir wird im Java-Prozess festgelegt. Wenn Sie keine java.io.tmpdir und gewähren dem Benutzer Zugriff auf das standardmäßige temporäre Verzeichnis des Betriebssystems.

Beschreibung

Umgebung

Adobe Experience Manager (AEM) (alle Versionen)

Problem/Symptome

Im error.log Berichte java.io.IOException: Permission denied 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)

Auflösung

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

unter Linux:

  1. Führen Sie diesen Befehl aus:

    ps -ef | grep java
    
  2. Überprüfen Sie die JVM-Parameter und suchen Sie nach -Djava.io.tmpdir

Unter Windows, Linux oder Unix:

  1. Navigieren Sie zu https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime
  2. Suchen Sie nach java.io.tmpdir auf der Seite.
  3. Den Wert von java.io.tmpdir in die Zwischenablage.
  4. 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.
  5. Wenn Sie keine java.io.tmpdirund 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).

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.

Auf dieser Seite