2012-06-20 101 views
0

我對使用Netty在我正在開發的項目中使用Netty感到非常興奮,但是承受很大的壓力以快速加速。我是一名經驗豐富的Java程序員,但在編寫客戶端 - 服務器系統方面沒有太多經驗。運行Netty HttpStaticFileServer示例

我正在通過netty的例子,但發現沒有太多的文檔如何正確運行它們。無可否認,通過源代碼挖掘是很有用的,但是當我到達HttpStaticFileServer時,我已經用這種方法觸及了牆壁。客戶端請求大概是來自telnet,但我不知道文件請求本身的格式是什麼,我已經嘗試了一些。 Handler編解碼器並沒有完全清楚。所以一般來說,如果有一套關於如何運行這個例子的說明,那將會很好。我保證我將在調試器中觀察整個過程,以便我可以跟蹤到底發生了什麼。所以目前來說,至少我希望FileServer的一個簡單例子。我想構建的應用程序將從我懷疑的內容中構建。謝謝您的幫助!

+0

我也嘗試使用瀏覽器來提出我的請求,選擇URL:http://127.0.0.1:8080。這給了我一個禁忌403.對不起......我覺得這是一種啓蒙儀式,我想我失敗了。但一個簡單的一行示例將真正幫助... – user1470481

+1

我轉移到HttpUploadServer,並能夠找出一個......如此作爲本示例的文檔中的建議,請添加UploadClient參數示例說明「 HTTP:// localhost:8080//c:/test.txt「 – user1470481

回答

1

HttpStaticFileServer將爲您的文件系統提供文件。

請參閱HttpStaticFileServerHandler..sanitizeUri()。這是將您輸入瀏覽器的虛擬路徑映射到物理路徑的地方。因此http://localhost:8080/afile.txt將映射到~/afile.txt。只需將afile.txt放在那裏,它就會顯示在瀏覽器中。

您可能要先嚐試Snoop示例。我在eclipse中加載netty(記得使用JDK7)並運行/調試示例應用程序。

0

我用Eclipse在Windows上運行HttpStaticFileServer。


要測試的例子遵循這些簡單的步驟:

  1. 運行服務器
  2. 類型在Web瀏覽器:本地主機:8080/file.ext(與你的文件替換file.ext)

該文件應在System.getProperty("user.dir")

查看有關如何工作的答案here

對我來說,它指向eclipse工作區目錄。所以,醚使用工作區或改變sanitizeUri(String uri)方法在HttpStaticFileServerHandler返回:的

rootPath + File.separator + uri; 

代替

return System.getProperty("user.dir") + File.separator + uri; 

其中ROOTPATH是路徑到文件服務器的根目錄下。