來自 java.io.File.createTempFile 的權限被拒錯誤

如果您從java.io.File.createTempFile收到許可權被拒絕的錯誤,請檢視JVM引數-Djava.io.tmpdir是否設定在Java處理序上。 如果您找不到java.io.tmpdir引數,則授與使用者對預設作業系統臨時目錄的存取權。

說明 description

環境

Adobe Experience Manager (AEM) (所有版本)

問題/症狀

報告java.io.IOException: Permission denied且棧疊追蹤中有java.io.File.createTempFileerror.log中發生錯誤。

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)

解決方法 resolution

檢視Java處理序上是否已設定JVM引數-Djava.io.tmpdir

在Linux上的

**1. 執行此命令:

ps -ef | grep java
  1. 檢閱搜尋-Djava.io.tmpdir的JVM引數在Windows、Linux或Unix上:1. 移至https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime

  2. 在頁面上搜尋java.io.tmpdir

  3. java.io.tmpdir的值複製到剪貼簿。

  4. 前往作業系統上的該路徑並授予擁有Java流程的使用者對該資料夾的完全讀取/寫入存取許可權。

  5. 如果您找不到java.io.tmpdir引數,則授與使用者對預設作業系統臨時目錄的存取權。

    • 在Linux和Unix中,此目錄預設為/tmp
    • 在Windows中,該目錄在使用者的主目錄下(例如: C:\Users\aemuser\AppData\Local\Temp)。原因擁有 AEM Java 流程的使用者沒有適當的權限來寫入 Java 流程的臨時目錄。**
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f