來自 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.createTempFile
的error.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
-
檢閱搜尋
-Djava.io.tmpdir
的JVM引數在Windows、Linux或Unix上:1. 移至https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime -
在頁面上搜尋
java.io.tmpdir
。 -
將
java.io.tmpdir
的值複製到剪貼簿。 -
前往作業系統上的該路徑並授予擁有Java流程的使用者對該資料夾的完全讀取/寫入存取許可權。
-
如果您找不到
java.io.tmpdir
引數,則授與使用者對預設作業系統臨時目錄的存取權。- 在Linux和Unix中,此目錄預設為
/tmp
。 - 在Windows中,該目錄在使用者的主目錄下(例如:
C:\Users\aemuser\AppData\Local\Temp
)。原因擁有 AEM Java 流程的使用者沒有適當的權限來寫入 Java 流程的臨時目錄。**
- 在Linux和Unix中,此目錄預設為
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f