假设你使用JSR-356技术注释了game.WebSocketEndpoint ……
例:
package game;
import javax.websocket.server.ServerEndpoint
@ServerEndpoint("/game")
public class WebSocketEndpoint {
}
然后你必须做以下……
>使用Jetty 9.1+
> Enable the ‘websocket’ module(将–module = websocket添加到start.ini或命令行)
这将使websocket服务器类注释扫描websocket端点.
注意:JSR-356并不意味着通过部署描述符(web.xml)进行映射.
但是,您可以使用以下方法之一以编程方式映射端点:
>创建一个javax.servlet.ServletContextListener,通过javax.websocket.server.ServerContainer手动添加端点(参见下面的方法)
>创建一个javax.servlet.ServerContainerInitializer,通过javax.websocket.server.ServerContainer手动添加端点(参见下面的方法)
>创建一个返回要添加的端点的javax.websocket.server.ServerAppliationConfig.
注意:技术#2和#3都需要类扫描注释(慢启动).技术#1是快速启动.
如何手动添加端点
// Get a reference to the ServerContainer
javax.websocket.server.ServerContainer ServerContainer =
(javax.websocket.server.ServerContainer)
servletContext.getAttribute("javax.websocket.server.ServerContainer");
// Add endpoint manually to server container
serverContainer.addEndpoint(game.WebSocketEndpoint.class);