在WebSocketConfigurer中为Spring引导应用程序使用@PathParam(javax.websocket.server.PathParam)

在WebSocketConfigurer中为Spring引导应用程序使用@PathParam(javax.websocket.server.PathParam),java,spring-boot,websocket,java-websocket,Java,Spring Boot,Websocket,Java Websocket,我已经创建了一个spring引导应用程序,希望在其中使用Web套接字。当我在没有参数的情况下使用它时,它工作得很好。下面是没有参数的代码 @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry regis

我已经创建了一个spring引导应用程序,希望在其中使用Web套接字。当我在没有参数的情况下使用它时,它工作得很好。下面是没有参数的代码

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer  {
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(new ABC(), "/getABC").setAllowedOrigins("*");
        registry.addHandler(new XYZ(), "/getXYZ").setAllowedOrigins("*");
    }
}
但是现在我需要使用@PathParam向它传递一个参数。我无法在这种配置中使用它,例如

registry.addHandler(new XYZ(), "/getXYZ{someId}").setAllowedOrigins("*");
我的处理程序代码:

public class XYZ extends TextWebSocketHandler {

        static List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();
        String someId;

        public XYZ() {
        }

        public XYZ(@PathParam(value = "someId") String someId) {
            this.someId= someId;
        }

        @Override
        public void afterConnectionEstablished(WebSocketSession session) throws Exception {
            // the messages will be broadcasted to all users.
            sessions.add(session);
        }
    }
公共类XYZ扩展了TextWebSocketHandler{
静态列表会话=新建CopyOnWriteArrayList();
字符串someId;
公共XYZ(){
}
公共XYZ(@PathParam(value=“someId”)字符串someId){
this.someId=someId;
}
@凌驾
建立连接后公共无效(WebSocketSession会话)引发异常{
//这些信息将广播给所有用户。
添加(会话);
}
}

我认为语法有问题,请尝试使用

public XYZ(@PathParam("someId") String someId)

此构造函数已存在于处理程序中。在spring引导的情况下,如何从WebSocketConfig传递此消息是一个问题。当我们使用@ServerEndpoint注册处理程序时,这将很好地工作。您找到解决方案了吗?我被困在同一点上。