tp官方正版下载

  • 如何及时获取TokenPocket官网安卓的更新提示? springboot整合websocket后启动报错(javax.websocket.server.ServerContainernotavailable)

  • 发布日期:2025-05-03 07:05    点击次数:68

一、场景

Springboot使用@ServerEndpoint来建立websocket链接。引入依赖。

配置Websocket

二、报错信息

springboot项目添加websocket依赖后运行测试类报如下错误:

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2024-01-15 10:27:30.908 ERROR 20552 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [org/springblade/lab/external/webScoket/WebSocketConfig.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)    at org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$211/1936375962.getObject(Unknown Source)    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:929)    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:591)    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732)    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:409)    at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)    at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:164)    at org.springblade.core.launch.BladeApplication.run(BladeApplication.java:49)    at org.springblade.Application.main(Application.java:33)Caused by: java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available    at org.springframework.util.Assert.state(Assert.java:76)    at org.springframework.web.socket.server.standard.ServerEndpointExporter.afterPropertiesSet(ServerEndpointExporter.java:107)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)    ... 17 common frames omitted

三、排查思路

报的错误是创建ServerEndpointExporterBean失败,原因是ServerContainer不可用,那么我们就去看到ServerContainer在ServerEndpointExporter中是怎么注入的。

点进去ServerEndpointExporter()类,在第49行代码打上debug跑一下

在这里插入图片描述

选中第50行代码,右键,执行计算,或者使用快捷键Crtl+U

在这里插入图片描述

计算结果发现是null

在这里插入图片描述

四、分析原因

为什么servletContext会返回null,定位到 ServerContainer 类,发现他是一个接口,tp官方下载安卓最新版本2025那必定注入的时候是有相应的实现类, tp官方下载点击查看实现,居然有五个实现类,那就可以推断是依赖冲突导致不知道要注入哪个实现,最后获取Bean的时候返回了null。

点进去getAttribute方法,查看实现类

在这里插入图片描述

这里有五个实现类,三个是tomcat的,一个是undertow的,还有一个是springframework的,所以解决办法就是排除掉其他的实现类,只保留springframework这个就行。

五、解决办法

安装Maven Helper插件,打开项目的pom.xml文件,点击pom文件左下角的Dependency Analyzer排除掉多余的依赖。

在这里插入图片描述

最终结果:

再次启动,一切正常!

到此这篇关于springboot整合websocket后启动报错(javax.websocket.server.ServerContainer not available)的文章就介绍到这了,更多相关springboot websocket启动报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!



推荐资讯

tp官方正版下载 TP钱包社区功能引爆用户互动,影响力惊人!

tp官方网站下载app 2025-07-24
最近,TP钱包的社区功能火了!很多人开始在平台上活跃起来,讨论、分享、互动,整个平台的氛围变得越来越热闹。为什么这个功能会这么受欢迎呢?其实说白了,就是它让钱包不只是一个“存钱的地方”,而是变成了一个“交流的平台”。 以前大家用钱包,主要是...

tp钱包转出手续费 2025最新!TP官网安卓版下载,打造品牌差异必看!

tp官方网站下载app 2025-11-18
2025最新!TP官网安卓版下载,打造品牌差异必看! 在如今这个信息爆炸的时代,手机应用已经成为我们生活中不可或缺的一部分。尤其是像TP(可能指TikTok或某些特定品牌)这样的热门平台,每天都有大量用户在使用。如果你也想在这个竞争激烈的市...

TokenPocket官网安卓客户端下载的用户群体分析 tp-link安装图曝光,一看就懂,小白也能

tp官方网站下载app 2025-06-26
TP-LINK安装图曝光,一看就懂,小白也能秒变高手! 相信很多小伙伴在装修房子或者搬家的时候,都会遇到这样一个问题:路由器怎么装?尤其是那些第一次接触网络设备的小白们,看到一堆线缆和说明书,可能会瞬间觉得头大。别担心!今天就来给大家分享一...
    友情链接:

Powered by tp官方正版下载 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024