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 の場合:

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

    code language-none
    ps -ef | grep java
    
  2. を検索している JVM パラメーターを確認します -Djava.io.tmpdir

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次に、パラメーターを使用して、OS のデフォルトの temp ディレクトリへのアクセス権をユーザーに付与します。

    • Linux および Unix の場合、このディレクトリは次のとおりです。 /tmp デフォルトでは。
    • Windows の場合、このディレクトリは、ユーザーのホームディレクトリの下にあります(例: C:\Users\aemuser\AppData\Local\Temp)に設定します。

原因

AEM java プロセスを所有するユーザーが、java プロセスの temp ディレクトリに書き込むための適切な権限を持っていません。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f