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.tmpdir
nella pagina. -
Copia il valore di
java.io.tmpdir
negli 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 è
/tmp
per 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.