2012-07-12 61 views
0

我正在爲客戶創建一個Java Applet,並且遇到了需要讀取/寫入其Web服務器上的文件的問題,但該文件在任何情況下都不能公開訪問。Java applet無法訪問同一網絡服務器上的非公開文件

Java Applet和文件都在同一臺服務器上,如果需要,我可以將文件和.jar文件放在同一個文件夾中,但我嘗試了幾種不同的配置,包括讓它們處於相同的狀態文件夾和訪問該文件與

test = WorkbookFactory.create(new File("test.xlsx")) 

我試着寫出文件的完整路徑,似乎沒有任何工作。

我得到的錯誤是:

Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "test.xlsx" "read") 

什麼是讀/寫在同一臺服務器上的文件,不能公開見過的最好的方法是什麼?

回答

1

您似乎對Java小程序的工作原理有一個根本的誤解。它們不在服務器上運行,它們在客戶端上運行,在Web瀏覽器中運行。如果客戶端的Web瀏覽器無權訪問該文件,則該Applet也無法訪問。

+0

我猜想這就是發生了什麼事。我將不得不尋找另一種他們想做的事情。謝謝! – Stickiler 2012-07-12 01:45:16

0

由於Java代碼在客戶端上運行 - 即在Web瀏覽器本身中運行,Applets無法讀取或寫入服務器上的文件。實現你要找的東西的最好方法是創建一個寫入文件的servlet(或其他服務器端代碼模塊),並強制執行某種安全措施。然後,applet可以與該servlet進行通信,並以任何您喜歡的方式保護對該文件的訪問。例如,嵌入applet的頁面可能包含生成的唯一鍵,並且applet將使用該鍵訪問servlet。

相關問題