设置(Websocket)ServerEndpoint的配置器没有注释

时间:2014-09-18 13:11:33

标签: tomcat java-ee websocket

this thread {I}我试图这样做:

@ServerEndpoint(... configurator = GetHttpSessionConfigurator.class)

没有@ServerEndpoint注释但使用此代码:

ServerEndpointConfig endpointConfig = ServerEndpointConfig.Builder.create(MyHandler.class, uri).build();
javax.websocket.server.ServerContainer.addEndpoint(endpointConfig);

因为我找不到任何" setConfigurator"方法,我检查了ServerEndpointConfig的来源,我发现配置(..tor)是由

加载的
 ServiceLoader.load(Configurator.class)

所以,我创建了一个meta-inf \ _服务\ _javax.websocket.server.ServerEndpointConfig $ Configurator文件,并添加了一行指向我的GetHttpSessionConfigurator(在1)类中定义。文件已加载(我使用Process Monitor检查过),但使用了Tomcat的DefaultServerEndpointConfig。

有没有人知道这个设置有什么问题?

1 个答案:

答案 0 :(得分:0)

.build()之前,您可以加入.configurator(new YourEndPointConfigurator())

因此,对于您的代码,您可以执行以下操作:

ServerEndpointConfig endpointConfig = ServerEndpointConfig.Builder
  .create(MyHandler.class, uri)
  .configurator(new ChatServerEndPointConfigurator(new GetHttpSessionConfigurator())
  .build();

更多信息可在ServerEndpointConfig.Builder docs中找到。