在創造我也遇到了這個問題,一個基於Java的Web應用程序的過程:的Tomcat不能訪問由Java的API創建的文件
創建一個新的目錄:
Runtime.getRuntime().exec("mkdir /home/me/web/export"));
複製圖像:
Runtime.getRuntime().exec("cp /home/me/images/a.jpg /home/me/web/export"
接下來我將在我的JSP文件中創建一個「a.jpg」的下載鏈接。到現在爲止一切正常,但是當我部署我在Tomcat webaplication並嘗試下載該文件我得到這個消息:
Http Status 404 - The requested resource (/export/a.jpg) is not available.
我檢查了目錄和圖像可在那裏。值得一提的是,在我將圖像重命名爲例如'b.jpg'並將其重命名爲'a.jpg'後,該鏈接將工作得很好。
編輯1
此問題也會影響由JAVA API創建的文件。我使用Filewriter在同一個目錄中創建'data.xml',並且當我試圖通過JSP頁面中的鏈接訪問它時,我獲得了與之前相同的頁面。
我拼命地試圖解決這個問題,通過給所有人的'chmod 777文件'可用的權限沒有任何成功。
編輯2
我意識到,停止Tomcat和重新啓動它後,一切都恢復了正常,現在鏈接工作正常。我認爲,tomcat以某種方式持有這個新創建的文件,所有這一切說,有什麼我可以做的解決這個問題?
最後編輯:
這恰好是多服務器的問題,因此它是邏輯將其移動到ServerFault。
感謝大家的迴應。
爲什麼你正在使用系統調用來完成使用Java API輕鬆完成的任務(創建目錄,應對文件)? – Crozin
@mdoust可能是安全問題,您的Tomcat服務器方式對此文件沒有權限。嘗試更改文件夾屬性或將文件放在其他位置(不是c目錄) –
@Crozin感謝您的迴應,使用JAVA API創建新目錄非常簡單,但我找不到任何直接的方法來處理複製圖像。我找到的所有可能的解決方案都涉及使用輸入流和輸出流。還有其他方法可以解決嗎? – mdoust