Error de permiso denegado de java.io.File.createTempFile

Si recibe un error de permiso denegado de java.io.File.createTempFile, averigüe si el parámetro de JVM -Djava.io.tmpdir está establecido en el proceso java. Si no encontró un parámetro java.io.tmpdir, conceda al usuario acceso al directorio temporal predeterminado del sistema operativo.

Descripción description

Entorno

Adobe Experience Manager AEM () (todas las versiones)

Problema/Síntomas

Se produce un error en error.log que informa de java.io.IOException: Permission denied y el seguimiento de pila 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)

Resolución resolution

Averigüe si el parámetro de JVM -Djava.io.tmpdir está establecido en el proceso java.

En Linux:

  1. Ejecute este comando:

    code language-none
    ps -ef | grep java
    
  2. Revise los parámetros de JVM buscando -Djava.io.tmpdir

En Windows, Linux o Unix:

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

  2. Busque java.io.tmpdir en la página.

  3. Copie el valor de java.io.tmpdir en el portapapeles.

  4. Vaya a esa ruta en el sistema operativo y conceda al usuario propietario del proceso java acceso total de lectura y escritura a esa carpeta.

  5. Si no encontró un parámetro java.io.tmpdir, conceda al usuario acceso al directorio temporal predeterminado del sistema operativo.

    • En Linux y Unix, este directorio es /tmp de forma predeterminada.
    • En Windows, el directorio se encuentra en el directorio particular del usuario (por ejemplo: C:\Users\aemuser\AppData\Local\Temp).

Causa

El usuario propietario del proceso java de AEM no tiene los permisos adecuados para escribir en el directorio temporal del proceso java.

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