問題点

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)

環境

AEM の全バージョン

原因

AEM の java プロセスを所有するユーザーに、java プロセスの temp ディレクトリに書き込みをおこなうための適切な権限が付与されていません。

解決策

  1. java プロセスで、JVM パラメーターの -Djava.io.tmpdir が設定されているか確認します。

    Linux

     a. 次のコマンドを実行します。

    ps -ef | grep java 

    b. JVM パラメーターをチェックして -Djava.io.tmpdir を検索します。

    Windows、Linux、Unix

     a. http://aem-host:aem-port/system/console/jmx/java.lang%3Atype%3DRuntime にアクセスします。

     b. ページ上で java.io.tmpdir を検索します。

  2. java.io.tmpdir の値をクリップボードにコピーします。

  3. オペレーティングシステムでそのパスにアクセスし、この java プロセスを所有するユーザーに対象フォルダーへの完全な読み取り/書き込みアクセス権を付与します。

  4. java.io.tmpdir パラメーターが見つからなかった場合は、OS のデフォルトの temp ディレクトリへのアクセス権をユーザーに付与します。  Linux と Unix では、このディレクトリはデフォルトでは /tmp です。  Windows では、このディレクトリはユーザーのホームディレクトリの下にあります(例:C:\Users\aemuser\AppData\Local\Temp)。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー