我正在尝试使用tyrus 1.8.2的编程端点来创建websocket服务器。我发现构造函数:
public Server(String hostName,
int port,
String contextPath,
Map<String,Object> properties,
Class<?>... configuration)不接受实现ServerEndpointConfig的类。当我尝试抛出一个DeploymentException时,“XXX类不是ServerApplicationConfig后代,也没有@ServerEndpoint注释。”
由于我使用的是编程端点(而不是注释),这似乎意味着我必须实现ServerApplicationConfig。这与websocket文档背道而驰。
因此,当我实现ServerApplicationConfig时,我不再得到这个异常,服务器似乎没有问题地启动,但是它返回404到我认为是有效的连接尝试(正确的主机、端口和上下文路径)。
我遗漏了什么?
附加信息:我扩展了TyrusServerEndpointConfigurator,并为modifyHandshake()方法提供了一个覆盖。服务器在没有调用此方法的情况下返回404。
发布于 2014-09-11 22:39:20
问题是对于Tyrus构建上下文路径的方式的困惑。有一个传递给服务器构造函数的路径,还有一个由ServerEndpointConfig getPath()方法返回的路径。将它们连接起来,形成完整的上下文路径。
因此,如果在服务器构造函数中指定"/server“,在ServerEndpointConfig.getPath()中指定"/endpoint”,服务器将接受“/ Server /终结点”上的连接请求。
https://stackoverflow.com/questions/25796644
复制相似问题