java.io.File.createTempFile からの権限拒否エラー
から権限拒否エラーが発生した場合 java.io.File.createTempFile
、JVM パラメーターかどうかを確認します。 -Djava.io.tmpdir
は java プロセスで設定されます。 を見つけられなかった場合 java.io.tmpdir
次に、パラメーターを使用して、OS のデフォルトの temp ディレクトリへのアクセス権をユーザーに付与します。
説明 description
環境
Adobe Experience Manager(AEM)(すべてのバージョン)
問題/症状
でエラーが発生しました。 error.log
当該報告 java.io.IOException: Permission denied
スタックトレースにはが含まれます 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)
解決策 resolution
JVM パラメーターがあるかどうかを確認します。 -Djava.io.tmpdir
は java プロセスで設定されます。
Linux の場合:
-
次のコマンドを実行します。
code language-none ps -ef | grep java
-
を検索している JVM パラメーターを確認します
-Djava.io.tmpdir
Windows、Linux または Unix の場合:
-
に移動 https://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime
-
を検索
java.io.tmpdir
ページに移動します。 -
の値をコピーします
java.io.tmpdir
をクリップボードに追加します。 -
オペレーティングシステム上のそのパスに移動し、java プロセスを所有するユーザーに、そのフォルダーに対する完全な読み取り/書き込みアクセス権を付与します。
-
を見つけられなかった場合
java.io.tmpdir
次に、パラメーターを使用して、OS のデフォルトの temp ディレクトリへのアクセス権をユーザーに付与します。- Linux および Unix の場合、このディレクトリは次のとおりです。
/tmp
デフォルトでは。 - Windows の場合、このディレクトリは、ユーザーのホームディレクトリの下にあります(例:
C:\Users\aemuser\AppData\Local\Temp
)に設定します。
- Linux および Unix の場合、このディレクトリは次のとおりです。
原因:
AEM java プロセスを所有するユーザーが、java プロセスの temp ディレクトリに書き込むための適切な権限を持っていません。