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:
-
Esegui questo comando:
code language-none ps -ef | grep java -
Rivedi i parametri JVM alla ricerca di
-Djava.io.tmpdir
Su Windows, Linux o Unix:
-
Vai a https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime
-
Cerca
java.io.tmpdirnella pagina. -
Copia il valore di
java.io.tmpdirnegli Appunti. -
Vai a tale percorso sul sistema operativo e concedi all’utente proprietario del processo Java l’accesso completo in lettura/scrittura a tale cartella.
-
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 è
/tmpper impostazione predefinita. - In Windows, la directory si trova nella home directory dell'utente (ad esempio:
C:\Users\aemuser\AppData\Local\Temp).
- In Linux e Unix, questa directory è
Causa
L’utente proprietario del processo Java AEM non dispone delle autorizzazioni necessarie per scrivere nella directory temporanea del processo Java.