tyrus websocket服务器程序端点

时间:2014-09-11 20:47:06

标签: websocket endpoint tyrus

我正在尝试使用带有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 API文档相反。

因此,当我实现ServerApplicationConfig时,我不再获得此异常,并且服务器似乎没有问题地启动,但它返回404到我认为有效的连接尝试(正确的主机,端口和上下文路径。)

我错过了什么?

附加信息:我扩展了TyrusServerEndpointConfigurator并为modifyHandshake()方法提供了覆盖。服务器返回404,而没有调用此方法。

1 个答案:

答案 0 :(得分:0)

问题结果是对Tyrus构建上下文路径的方式感到困惑。传递给Server构造函数的路径,以及ServerEndpointConfig getPath()方法返回的路径。它们连接在一起形成完整的上下文路径。

因此,如果在Server构造函数中指定“/ server”,在ServerEndpointConfig.getPath()中指定“/ endpoint”,则服务器将接受“/ server / endpoint”上的连接请求。