Caused by: javax.websocket.DeploymentException: Multiple Endpoints may not be deployed to the same

文章讲述了作者在尝试在Tomcat中集成WebSocket时遇到的问题,包括非法状态异常和类转换异常。通过注释相关代码、调整依赖和指定scope为provided,最终解决了这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照一个博客搞的,然后tomcat起都起不起来,

报错信息是,

java.lang.IllegalStateException: Failed to register @ServerEndpoint class: class com.qcby.config.WebSocket
Caused by: javax.websocket.DeploymentException: Multiple Endpoints may not be deployed to the same path [/bindingRecord]

然后上网查半天,好像是tomcat已经集成了websocket所以不需要自己再来集成WebSocketConfig,

然后我就把代码中的这一段给注释掉,重启。

    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }

这次启动倒是不报错了,但是前端的ws请求根本不通啊,然后我又把注释打开了,随便再重启一下,很奇怪又报了一个不一样的错。

Caused by: java.lang.ClassCastException: org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to javax.websocket.server.ServerContainer

然后又去查,看到了这篇文章Tomcat 8 和网络套接字,根据他说的,修改依赖,加上scope

      <dependency>
            <groupId>javax.websocket</groupId>
            <artifactId>javax.websocket-api</artifactId>
            <version>1.1</version>
            <scope>provided</scope>
        </dependency>

然后就可以了,有种瞎猫撞上死耗子的感觉,我再去仔细查查为什么要这么改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值