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

Si obtiene un error de permiso denegado de java.io.File.createTempFile, averigüe si el parámetro JVM -Djava.io.tmpdir se configura en el proceso java. Si no ha encontrado un java.io.tmpdir y, a continuación, 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 error.log que informa java.io.IOException: Permission denied y el seguimiento de pila tiene java.io.File.createTempFile en ella.

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

Averiguar si el parámetro JVM -Djava.io.tmpdir se configura 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. Ir a https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime

  2. Buscar por java.io.tmpdir en la página.

  3. Copie el valor de java.io.tmpdir al 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 ha encontrado un java.io.tmpdiry, a continuación, 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 principal 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