运行Netty HttpStaticFileServer示例

时间:2012-06-20 21:33:59

标签: java netty fileserver

我很高兴在我正在进行的项目中使用Netty,但是在很大的压力下快速加速。我是一名经验丰富的Java程序员,但在编写客户端 - 服务器系统方面经验不足。

我正在通过netty示例工作,但发现没有太多关于如何正确运行它们的文档。不可否认,通过源代码挖掘是很有用的,但是当我到达HttpStaticFileServer时,我已经采用了这种方法。客户端请求可能来自telnet,但我不知道文件请求本身的格式是什么,我尝试了一些。 Handler编解码器根本不清楚。所以一般情况下,如果有一组关于如何运行示例的说明会很好。我保证我将在调试器中观察整个过程,因此我可以关注到底发生了什么。所以目前,至少,我要感谢FileServer的一个简单示例。我想要构建的应用程序将根据我的怀疑构建。谢谢您的帮助!

2 个答案:

答案 0 :(得分:1)

HttpStaticFileServer将提供文件系统中的文件。

请参阅HttpStaticFileServerHandler..sanitizeUri()。这是将您输入浏览器的虚拟路径映射到物理路径的位置。

因此http://localhost:8080/afile.txt将映射到~/afile.txt。只需将afile.txt放在那里就可以显示在浏览器中。

您可能需要先尝试Snoop示例。我在eclipse中加载netty(记得使用JDK7)并运行/调试示例应用程序。

答案 1 :(得分:0)

我在Eclipse上用Eclipse运行了HttpStaticFileServer。


要测试该示例,请按照以下简单步骤操作:

  1. 运行服务器
  2. 在网络浏览器中输入:localhost:8080 / file.ext(将file.ext替换为您的文件)

  3. 该文件应位于System.getProperty("user.dir")

    查看有关其工作原理的答案here

    对我而言,它指向eclipse工作区目录。因此,以太使用工作区或更改sanitizeUri(String uri)中的HttpStaticFileServerHandler方法返回:

     rootPath + File.separator + uri;
    

    而不是

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

    其中rootPath是文件服务器根目录的路径。