Errore Autorizzazione negata da java.io.File.createTempFile

Se si riceve un errore di autorizzazione negata da java.io.File.createTempFile, verificare se il parametro JVM -Djava.io.tmpdir è impostato nel processo Java. Se non hai trovato un parametro java.io.tmpdir, concedi all'utente l'accesso alla directory temporanea del sistema operativo predefinito.

Descrizione description

Ambiente

Adobe Experience Manager (AEM) (tutte le versioni)

Problema/Sintomi

Si è verificato un errore in error.log che segnala java.io.IOException: Permission denied e la traccia dello stack contiene 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)

Risoluzione resolution

Verificare se il parametro JVM -Djava.io.tmpdir è impostato nel processo Java.

Su Linux:

  1. Esegui questo comando:

    code language-none
    ps -ef | grep java
    
  2. Rivedi i parametri JVM alla ricerca di -Djava.io.tmpdir

Su Windows, Linux o Unix:

  1. Vai a https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime

  2. Cerca java.io.tmpdir nella pagina.

  3. Copia il valore di java.io.tmpdir negli Appunti.

  4. Vai a tale percorso sul sistema operativo e concedi all’utente proprietario del processo Java l’accesso completo in lettura/scrittura a tale cartella.

  5. Se non hai trovato un parametro java.io.tmpdir, concedi all'utente l'accesso alla directory temporanea del sistema operativo predefinito.

    • In Linux e Unix, questa directory è /tmp per impostazione predefinita.
    • In Windows, la directory si trova nella home directory dell'utente (ad esempio: C:\Users\aemuser\AppData\Local\Temp).

Causa

L’utente proprietario del processo Java AEM non dispone delle autorizzazioni necessarie per scrivere nella directory temporanea del processo Java.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f