2012-09-06 28 views
4

我正在開發一個applet,需要在服務器上保存一個文本文件。在與這個問題搏鬥了一段時間之後,我在Lynlin.class上偶然發現了可以使用ftp連接發送文件的網絡。工作正常提供我添加到C:\ Program Files文件\的Java \ jre7 \ lib \ security中\ java.policy文件一下面一行:java.net.SocketPermission在Applet中

permission java.net.SocketPermission "192.168.33.15:*", "connect, accept ,resolve, listen"; 

如果我嘗試運行從一個沒有計算機此applet已經java.policy文件編輯我得到以下錯誤:

java.security.AccessControlException: access denied 
    ("java.net.SocketPermission" "192.168.33.15:21" "connect,resolve")* 

有誰知道我怎麼能擺脫不是編輯在每個將使用該applet的每臺計算機java.policy文件和其他這個問題的?

只是爲了claryfy:

  • 我的小程序目前沒有簽名,但它試圖發送一個文件服務器在該小程序位於

  • 的相同HTTP和FTP服務器是Windows Server 2003上運行微軟IIS(IP 192.168.33.15)

+0

確切的URL是「\\ pwaidc9 \ intranet \ Inetpub \ RDE \ Locked_programs \ Programs_report.html」,位於我們公司的一個Intranet服務器上(pwaidc9是192.168.33.15)。所有.class文件以及我想要上傳的文件都位於「Locked_programs」中,該文件夾也是ftp服務器的根文件夾。 – Przemek

+0

安德魯,就是這樣。我不經意地引用了applet的頁面('href =「file:// pwaidc9 ...')。我將鏈接引用更改爲'http:// pwaidc9..',它起到了魅力的作用,applet可以正常工作所有的計算機,謝謝你的幫助,我永遠不會想到這個 – Przemek

回答

1

正如EJP暗示的那樣,提供applet的地址和服務器的地址似乎與運行applet的JRE不同。

有必要通過服務器訪問HTML(一個http://..地址)。

-1

沒有辦法一個小程序做不explic網絡連接它允許在客戶機環境中允許這樣的活動。這對於客戶端機器的安全性是如此。默認情況下,所有applet都在受限制的沙盒環境中運行。

+3

完全不正確所有applet都可以打開它們加載的服務器的套接字,並且簽名的applet可以打開套接字到任何地方-1 – EJP

+0

是的,但只有從 – Drona

+1

又犯了一個錯誤,一個已簽名的applet可以打開一個socket到任何地方 – EJP

2

The exact URL is "\pwaidc9...

這不是一個URL。這是一個Windows UNC文件名。您從文件系統下載小程序,而不是TCP主機,因此無法使用套接字連接到它。

簽署小程序。

+0

明天我會試着去做,並告訴你它是如何工作的。 – Przemek