ehcache使用注意事項

通常 ehcache 的配置中默認的 diskStore 的路徑設置的是 java.io.tmpdir ,等因而當前系統的臨時目錄。java

可是在 Tomcat  和 Resin 這兩個應用服務器上,臨時目錄是有區別的,在 Tomcat 上運行的應用經過 java.io.tmpdir 系統變量獲取到的路徑是 Tomcat 目錄下的 temp 子目錄,而 Resin 返回的是系統的臨時目錄,linux下可能就是 /tmplinux

在 Linux 下若是咱們使用的是 root 帳號來啓動 Tomcat 和 Resin 的話,那這個問題就不存在。可是咱們很是不建議用 root 來啓動 Tomcat 和 Resin,這時候咱們會單獨的建立一個非特權帳號,假設該帳號名爲 www 來運行應用服務器。tomcat

咱們須要將 Tomcat 和 Resin 所在的目錄受權給 www 帳號,這樣應用服務器的日誌文件才能正常的寫入,可是因爲 Resin 的臨時目錄是對應系統的 /tmp 目錄,所以若是應用中使用了 ehcache 並設置了存儲路徑爲 java.io.tmpdir ,你就會發現啓動的時候報錯,提示沒有在 /tmp 目錄下建立文件的權限,這是由於 www 帳號沒有寫 tmp 目錄的權限。服務器

解決的辦法就是修改 ehcache 的 diskStore 配置的值爲  user.home ,將存儲文件路徑指定到用戶的主目錄下便可。.net

而 Tomcat 就沒有這個問題,由於它的臨時目錄在 {tomcat}/temp ,而整個 {tomcat} 都已經受權給 www 帳號了。日誌

相關文章
相關標籤/搜索