Erro de permissão negada do java.io.File.createTempFile

Se você receber um erro de permissão negada de java.io.File.createTempFile, descubra se o parâmetro JVM -Djava.io.tmpdir está definido no processo java. Se você não encontrou um parâmetro java.io.tmpdir, conceda ao usuário acesso ao diretório temporário padrão do sistema operacional.

Descrição description

Ambiente

Adobe Experience Manager (AEM) (todas as versões)

Problema/Sintomas

Erro no error.log que relata java.io.IOException: Permission denied e o rastreamento de pilha contém 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)

Resolução resolution

Descubra se o parâmetro JVM -Djava.io.tmpdir está definido no processo java.

No Linux:

  1. Execute este comando:

    code language-none
    ps -ef | grep java
    
  2. Revise os parâmetros JVM pesquisando por -Djava.io.tmpdir

No Windows, Linux ou Unix:

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

  2. Pesquise por java.io.tmpdir na página.

  3. Copie o valor de java.io.tmpdir para a área de transferência.

  4. Vá para esse caminho no Sistema operacional e conceda ao usuário proprietário do processo java acesso completo de leitura/gravação a essa pasta.

  5. Se você não encontrou um parâmetro java.io.tmpdir, conceda ao usuário acesso ao diretório temporário padrão do sistema operacional.

    • No Linux e Unix, esse diretório é /tmp por padrão.
    • No Windows, o diretório está no diretório base do usuário (por exemplo: C:\Users\aemuser\AppData\Local\Temp).

Causa

O usuário proprietário do processo java do AEM não tem permissões apropriadas para gravar no diretório temporário do processo java.

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