是否可以为Tomcat容器编写非HTTP servlet?

时间:2015-02-13 13:45:57

标签: java tomcat cloudfoundry

我想处理非HTTP流量,但(现在看来)我必须在Cloud Foundry生态系统中运行它。

有没有办法编写(并推送)一个可以处理原始TCP连接的servlet,或者这是针对整个servlet容器设计的(正如我现在所见)?

4 个答案:

答案 0 :(得分:1)

截至目前,Cloud Foundry不支持TCP。然而,TCP今年即将到来。查看http://www.slideshare.net/Pivotal/cloud-foundry-summit-2014-cloud-foundry-roadmap了解路线图!

答案 1 :(得分:0)

Servlet处理请求(不一定是每个规范的HTTP请求,但总是请求)。您可以编写将在原始TCP套接字上侦听的代码,但这与它是否在Tomcat中运行无关。

答案 2 :(得分:0)

Tomcat侦听HTTP端口,并将传递给它的请求转换为传递给servlet方法的Java对象。

您不能让Tomcat听取与HTTP或HTTPS不同的任何内容。因此,如果您有一个处理原始TCP连接的类,那么在Tomcat中没有任何优势。

答案 3 :(得分:0)

要添加有关您最初的问题的更多信息,即是否有可能为Tomcat容器编写非HTTP Servlet,答案是肯定的,这很有可能。 TomCat预先配置了对HTTP协议的内置支持。但是,您可以扩展servlet概念并对其进行调整以支持TCP / IP之上的其他协议并不是太牵强。

如果您查看Servlet类,您将看到该类扩展了HttpServlet,而HttpServlet扩展了GenericServlet类。由您自己创建扩展GenericServlet的唯一协议类。例如,您可以创建一个FTPServletSMTPServlet类。但是,将由您决定Servlet范例是否是实现其他协议的最佳架构。祝你好运。