这有效:
String webappDir = "...";
context = tomcat.addWebapp("/", new File(webappDir).getAbsolutePath());
这不是:
context = tomcat.addContext("/", new File("").getAbsolutePath());
在这个实例中我真的不需要webappDir
,因为我没有提供任何JSP页面或客户端资源,我只是简单地使用response.getWriter().println(...);
服务器端
没有异常被抛出,websocket根本就没有打开。
我可以假设这是一个tomcat错误吗?
答案 0 :(得分:3)
addContext
的javadoc,你可以看到,你需要设置上下文才能使用websocket。这是从api doc中检索的。
添加上下文 - 编程模式,不使用默认的web.xml。这意味着 没有JSP支持(没有JSP servlet),没有默认的servlet和 除非通过程序显式启用,否则不支持Web套接字 接口
因此,在您的情况下,我猜您可以按照此link中的测试用例说明如何在上下文中添加结束点。
至于你是否可以认为这是一个错误。就个人而言,我不认为这是一个错误,因为开发人员已经提到他们没有提供Web套接字连接。但是,为了确保,您可以联系他们并询问;)。
答案 1 :(得分:1)
如果你查看测试(源代码中的test / org / apache / tomcat / websocket),他们会这样做
tomcat.addContext("", null);
请注意,传递null
而不是上下文路径需要最近的Tomcat 8(不超过几个月)。当前版本是8.0.22。
我可以假设这是一个tomcat错误吗?
规则“在提交错误之前”是在用户的邮件列表上询问,而不是在stackoverflow上。