2012-07-09 55 views
0

Im在使用Java Web Start程序確定如何寫入文件時遇到了一些麻煩,我想將文件寫入描述已上載到雲服務器。我還希望從客戶端發送文件名和路徑等數據,以便我可以在用戶和雲存儲設施之間創建連接並將文件發送給它。什麼是與JWS Java應用程序的服務器進行交互的最佳方式

當前,當我嘗試運行我的Web Start應用程序時,它工作正常,並且沒有提供任何錯誤,但是不會將文件和文件夾寫入它駐留的服務器。例如,下面的代碼無法正常工作:

new File ("ArFile Clients\\File Data\\" 
     + user.getCompany().getName() + "\\" + user.getUsername()).mkdirs(); 

此目錄所在的服務器上,並創建將數據存儲上的應用程序的用戶。但是在運行時,它會被忽略或不被執行。

我沒有使用套接字或FTP或類似的東西,雲服務器有我自己的自定義庫,我知道這個問題必須與Java Web Start如何工作,我只是找不到涉及在服務器上創建文件,並且在客戶機中提取數據的任何很好的例子(只是像文件系統的目錄和文件數據)

+0

JWS應用程序運行*本地*即使它是*下載遠程*; JWS是一種客戶端技術。另外,「簡單忽略或不執行」可能是錯誤的結論。這不是野獸的本質。 – 2012-07-09 05:41:17

+0

也許重新編寫標題以提出真正的問題:「JWS如何訪問/修改'雲'文件?」 (或者類似的*捕獲意圖*。) – 2012-07-09 05:45:51

+0

好吧,我不能告訴幕後發生了什麼,但沒有文件寫入服務器機器,所以我需要使用URL或其他東西來得到這個工作?也可以使用Applet代替我想要做的更好的選擇? – 2012-07-09 05:45:53

回答

2

我想在webstart的一些解釋還真是會與此有關:)

第一總之,web start是在客戶端JVM上運行的東西。 是的,它使用jnlp文件,你應該指定從屬jar /其他資源的URL。 Web開始所做的就是讀取此jnlp文件(再次在客戶端)分析,找出存在資源的URL列表並將它們加載到客戶端計算機上。 物理上,這是通過使用javaws的工具,一個可以在

%JDK_HOME%\ bin中 文件夾中找到實現的。 就像''java''作爲一個輸入一系列類文件/罐子併產生一個jvm,javaws得到一個jnlp,讀取它,帶來資源併產生一個jvm :) 還有一些額外的東西,網絡開始可以做(像自動更新),但這是'核心功能'。底線,如果你想在服務器上寫一些文件,web start是一個錯誤的方法。

從概念上講,一旦您的應用程序被加載,並且您想要將文件存儲在服務器上 - 從客戶端創建某種到服務器計算機的連接並將文件上傳到那裏。這種或那種方式不能與網絡進行啓動:)

我希望它能幫助

+0

基於這些信息,我認爲不錯,我認爲不適合JWS,但是完全忘記了服務器機器,它不是我想要的,但是在一天結束時,程序可以正常工作而無需服務器交互。儘管如此,我試圖在服務器機器上運行.jnlp文件(這也使得它也成爲了客戶端嗎?),但這仍然沒有寫入文件,但是如果我進入netbeans並運行文件本身,它可以很好地工作: S – 2012-07-09 06:01:43

+0

嗨,正如我所說的網絡啓動不會自己寫文件。如果只是在內部下載url(通常是它的罐子或資源,如圖片,聲音文件等)。爲了手動運行web啓動,你可以使用'javaws your-jnlp-file.jnlp' - 這將起作用。你可以在你的應用程序中編寫/讀取文件,如果這不起作用的話應該有一個異常,指定到底是什麼失敗...... – 2012-07-09 06:05:35

+0

你是我正在運行的jnlp文件,它只是不寫,並且盡我所能告訴我們沒有拋出異常,我會嘗試幾件事情,看看它們是否是問題,如果問題仍然存在,我會盡快回復(當我寫作時,這是使用緩衝作者在代碼中編寫文件) – 2012-07-09 06:11:32

相關問題