我试图在没有类路径扫描的情况下在 Java Servlet (Tomcat 9) 中设置 WebSocket,但我遇到了这个错误: javax.websocket.DeploymentException: Multiple Endpoints may not be deployed to the same path [/test/{accountId}] : existing endpoint was [class probotdev.websocket.Test] and new endpoint is [class probotdev.websocket.Test] at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:169) at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:232)这是我的web.xml:<web-app version="3.0" metadata-complete="true" ...> <absolute-ordering/> <listener> <listener-class>probotdev.websocket.WebSocket</listener-class> </listener> ...</web-app>和WebSocket班级:class WebSocket extends ServletContextListener { override def contextInitialized(sce: ServletContextEvent): Unit = { val container = sce.getServletContext.getAttribute("javax.websocket.server.ServerContainer").asInstanceOf[ServerContainer] container.addEndpoint(classOf[Test]) }}最后是Test课程:@ServerEndpoint("/test")class Test { @OnOpen def onOpen(session: Session): Unit = { println("Bla!") } ...}
1 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
我web.xml
的配置使 Tomcat 不扫描类路径(对于 servlet 等),但它仍在扫描 WebSocket 内容。
我的解决方案?只需删除WebSocket extends ServletContextListener
该类。
添加回答
举报
0/150
提交
取消