我需要部署到一个PaaS (HANA平台),它只支持Tomcat容器,并且希望将Vert.x作为一个异步框架运行。
到目前为止,我所做的是通过servlet引导Vert.x:
public class VertxServlet extends HttpServlet {
...
@Override
public void init(ServletConfig cfg) {
Vertx vertx = Vertx.vertx();
vertx.createHttpServer().requestHandler(new Handler<HttpServerRequest>() {
public void handle(HttpServerRequest req) {
System.out.println("Got request: " + req.uri());
System.out.println("Headers are: ");
for (Map.Entry<String, String> entry : req.headers()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
req.response().headers().set("Content-Type", "text/html; charset=UTF-8");
req.response().end("<html><body><h1>Hello from vert.x!</h1></body></html>");
}
}).listen(8888);
}
...
}在我的web.xml中,我说:
<servlet>
<servlet-name>VertxServlet</servlet-name>
<display-name>VertxServlet</display-name>
<description></description>
<servlet-class>com.mypackage.VertxServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>效果很好。问题是PaaS无法配置端口映射。包括反向代理在内的整个Tomcat是一个预先准备好的解决方案。
问题:
.war文件运行是一种可行的方法,还是它有可能在以后发生的任何限制和困难?谢谢
发布于 2016-04-11 05:27:37
我找到了解决办法。有一个HTTP,您可以轻松地将HTTP请求转发到Vert.x套接字:https://github.com/mitre/HTTP-Proxy-Servlet,它对HTTP很有效。
但不幸的是,这个解决方案不支持网络套接字。
发布于 2016-04-10 04:07:53
据我所知,您将遇到一个端口绑定问题,以便在与tomcat相同的端口上运行。
与其在tomcat中运行vert.x,不如考虑在tomcat和代理请求(从vert.x到tomcat )之前运行vert.x,如果请求是为了tomcat的话。这将允许您对发送给vert.x的请求利用vert.x异步。如果你用另一种方式去做,我认为你会失去一些真正的好处。如果您有额外的内存,您可能需要考虑在2个jvm上运行。
https://stackoverflow.com/questions/36432903
复制相似问题