Tomcat中如何使用netty的功能?
最近学习了Netty,看到里面的文件下载的代码挺好,想把它利用到我的一个web服务中,这个web服务有一个下载页面,供用户下载一些帮助文档的,原先是用servlet作的下载功能,现在想切换成netty来实现,但是发现这完全没办法集成啊,主要有几个问题:
1、tomcat默认用了8080的端口,那我下载的请求自然是发到这个端口,可是netty需要绑定端口后才能开启监听,8080端口已经被tomcat绑定,难道让netty绑定其他端口?
2、假设我把netty绑定了其他端口,那我的请求要怎么发送到那个端口上?是在超链接中就写死?还是在servlet中再触发一次新端口的http请求?
3、netty的example中,启动都是通过main方法的,而我的项目都是通过spring注入bean的,那如何让nettyServer类在启动时就开启监听?本来打算是把sync()方法的调用放到构造函数里,这样spring在实例化bean的时候就能帮我开启监听,但这个方法是阻塞的,一旦spring调用了这个方法就会被阻塞,无法实例化后面的bean,这又是个头痛的问题
鉴于上面的这些问题,我很怀疑,是不是netty和tomcat就不应该继承在一起?tomcat作为web服务器,而netty通常是作为网络传输的服务器,基于我上面提供的应用场景,我是否可以认为应该部署2个服务,一个是tomcat服务,专门用于响应web请求,另一个是用netty实现的文件服务器,专门提供下载功能。这样就不需要考虑二者集成的问题了,但是如果这样的话,下载链接就会请求另一个端口,这样就跨域了,又该怎么办?
讲了这么多,关键还是不清楚一个网站,如何把网页的响应和下载的响应分割开,麻烦高手解答