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

Descrição

Ambiente
Adobe Experience Manager, todas as versões

Problema
Ocorre um erro na variável error.log que informa "java.io.IOException: Permissão negada" e o rastreamento de pilha tem java.io.File.createTempFile nela.

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)

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.

Resolução

Solução
Descubra se o parâmetro da JVM -Djava.io.tmpdir é definido no processo java.

    No Linux:

Execute este comando:

ps -ef | grep java

Revise os parâmetros JVM procurando por -Djava.io.tmpdir

    No Windows, Linux ou Unix:

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

Procurar por java.io.tmpdir na página.

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

  • 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.

  • Se você não encontrou um java.io.tmpdir , em seguida, conceda ao usuário acesso ao diretório temporário do sistema operacional padrão.

    No Linux e no 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).

Nesta página