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。
有没有人知道这个设置有什么问题?
答案 0 :(得分:0)
在.build()
之前,您可以加入.configurator(new YourEndPointConfigurator())
因此,对于您的代码,您可以执行以下操作:
ServerEndpointConfig endpointConfig = ServerEndpointConfig.Builder
.create(MyHandler.class, uri)
.configurator(new ChatServerEndPointConfigurator(new GetHttpSessionConfigurator())
.build();
更多信息可在ServerEndpointConfig.Builder
docs中找到。