SpringBoot項目使用WebSocket提示Error creating bean with name ‘serverEndpointExporter‘

問題描述:WebSocket在Controller中正常工作,但是在之后使用SpringBootTest進行單元測試的時候,突然提示WebSocket的相關錯誤。

錯誤提示:

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [cn/edu/zzu/config/WebSocketConfiguration.class]: jakarta.websocket.server.ServerContainer not available
java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@7686f701 testClass = cn.edu.zzu.ZzuServerApplicationTests, locations = [], classes = [cn.edu.zzu.ZzuServerApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@173ed316, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@27406a17, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@3a7442c7, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@5032714f, org.springframework.boot.test.context.SpringBootTestAnnotation@e578dfe0], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180)at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130)at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191)at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130)at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260)at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:163)at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)at java.base/java.util.Optional.orElseGet(Optional.java:364)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [cn/edu/zzu/config/WebSocketConfiguration.class]: jakarta.websocket.server.ServerContainer not availableat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)at org.springframework.boot.SpringApplication.run(SpringApplication.java:335)at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137)at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58)at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46)at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1463)at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:553)at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137)at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152)... 17 more
Caused by: java.lang.IllegalStateException: jakarta.websocket.server.ServerContainer not availableat 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:1835)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784)... 38 more

導致這個問題的原因:在測試環境中沒有WebSocket的環境,只需要添加一個標識即可。

// 修改后的注解,再次運行就不會提示WebSocket的錯誤
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
// @SpringBootTest  // 默認注解
@Slf4j
class ZzuServerApplicationTests {// 測試代碼
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38575.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38575.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38575.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

項目中的代碼記錄日常

項目中的代碼記錄日常 /// <summary> /// 修改任務狀態 /// </summary> private void StartProcess21() {Process21Task new Thread(() >{while (CommonUtility.IsWorking){try{if (tPAgvTasksList.Count > 0){Parallel.ForEach(tPAgvTasksList, new Paral…

gitlab push的時候需要密碼,你忘記了密碼

情景: 忘記密碼,且登入網頁端gitlab的密碼并不能在push的時候使用,應該兩者是兩個不同的密碼 解決方法: 直接設置ssh密鑰登入,不使用密碼gitlab添加SSH密鑰——查看本地密鑰 & 生成ssh密鑰_gitlab生成ssh密鑰-CSDN博客

[OC]蘿卜圈Python手動機器人腳本

這是給機器人設置的端口&#xff0c;對照用 代碼 # #作者:溥哥’ ##機器人驅動主程序 #請在main中編寫您自己的機器人驅動代碼 import msvcrt def main():a"none"while True:key_input msvcrt.getch()akey_inputif abw:print(a)robot_drv.set_motors(1,40,2,40,3,…

uniapp學習筆記

uniapp官網地址&#xff1a;https://uniapp.dcloud.net.cn/ 學習源碼&#xff1a;https://gitee.com/qingnian8/uniapp-ling_project.git 顏色網址&#xff1a;https://colordrop.io/ uniapp中如何獲取導航中的路由信息&#xff1f; onLoad(e){console.log(e)console.log(e.w…

C#根據類的public屬性加載類中對應字段的XML

<?xml version"1.0" encoding"utf-8"?> <root><UserLogin ID"0" UserName"" UserPassWord"" Level"1" PowerName"默認用戶" PowerID"0" Remark"" IsEnabled"…

java八股文面試題

Java八股文面試題通常涵蓋了Java語言的基礎知識、高級特性、框架應用、數據庫操作等多個方面。以下是一些常見的Java面試題及其詳細回答&#xff0c;按照不同的主題進行分類&#xff1a; 一、Java基礎 面向對象的特征有哪些&#xff1f; 抽象&#xff1a;忽略與當前目標無關的…

2.2.4 C#中顯示控件BDPictureBox 的實現----ROI交互

2.2.4 C#中顯示控件BDPictureBox 的實現----ROI交互 1 界面效果 在設定模式下&#xff0c;可以進行ROI 框的拖動&#xff0c;這里以Rect1舉例說明 2 增加ROI類定義 /// <summary> /// ROI_single /// 用于描述圖片感興趣區域 /// type: 0:Rect1;1:Rect2;2:Circle ;3:…

C++ //練習 14.31 我們的StrBlobPtr類沒有定義拷貝構造函數、賦值運算符及析構函數,為什么?

C Primer&#xff08;第5版&#xff09; 練習 14.31 練習 14.31 我們的StrBlobPtr類沒有定義拷貝構造函數、賦值運算符及析構函數&#xff0c;為什么&#xff1f; 環境&#xff1a;Linux Ubuntu&#xff08;云服務器&#xff09; 工具&#xff1a;vim 解釋&#xff1a; 因為…

工業路由器與家用路由器的區別

在現代網絡環境中&#xff0c;路由器扮演著至關重要的角色。無論是在家庭網絡還是在工業網絡&#xff0c;選擇合適的路由器都至關重要。本文將從多個角度&#xff0c;對工業路由器與家用路由器進行詳細比較&#xff0c;幫助您更好地理解二者的區別。 1、安全性 工業路由器&…

大模型應用開發實戰基礎

大模型應用開發實戰基礎 1. 背景 大模型如日中天&#xff0c;各行各業都受它影響&#xff0c;但是作為程序員&#xff0c;除了讓它翻譯代碼不知道用它干什么&#xff0c;就像是拿著錘子的木匠&#xff0c;找不到釘子在哪。一邊聽著別人說2024是AI元年&#xff0c;一邊又不知所…

PostgreSQL的系統視圖pg_stat_database_conflicts

PostgreSQL的系統視圖pg_stat_database_conflicts 在 PostgreSQL 中&#xff0c; pg_stat_database_conflicts 是一個視圖&#xff0c;用于監控并發操作導致的數據庫沖突情況。了解和監控這些沖突可以幫助數據庫管理員調優系統&#xff0c;以更好地處理并發事務。 pg_stat_da…

中控室監控臺在水處理行業的作用

隨著工業化和城市化的快速推進&#xff0c;水處理行業的重要性日益凸顯。作為確保水質安全、提高水資源利用效率的關鍵環節&#xff0c;水處理廠需要高效、穩定地運行。在這個過程中&#xff0c;中控室監控臺發揮著不可或缺的作用。本文將從以下幾個方面&#xff0c;詳細闡述中…

fyne的MultiLineEntry設置大小

MultiLineEntry設置大小 在另一篇文章講過&#xff0c;放入border布局中&#xff0c;可以最大化MultiLineEntry。 這里再介紹另一種方法:SetMinRowsVisible() func (e *Entry) SetMinRowsVisible(count int) {e.multiLineRows counte.Refresh() }SetMinRowsVisible強制mult…

(域滲透提權)CVE-2020-1472 NetLogon權限提升漏洞

目錄 漏洞簡介 漏洞檢測 漏洞利用 使用腳本進行利用 使用Mimikatz進行利用 恢復用戶哈希 漏洞簡介 CVE-2020-1472是繼永恒之藍漏洞之后又一個好用的內網提權漏洞&#xff0c;影響Windows Server2008R2至2019的版本。只要攻擊者能夠訪問到目標域控并且知道域控計算機名即…

九淺一深Jemalloc5.3.0 -- ④淺*配置

目前市面上有不少分析Jemalloc老版本的博文&#xff0c;但最新版本5.3.0卻少之又少。而且5.3.0的架構與5之前的版本有較大不同&#xff0c;本著“與時俱進”、“由淺入深”的宗旨&#xff0c;我將逐步分析最新release版本Jemalloc5.3.0的實現。 另外&#xff0c;單講實現代碼是…

ShareSDK iOS端如何實現小紅書分享

下載SDK 請登陸官網 &#xff0c;找到SDK下載&#xff0c;勾選需要的平臺下載 導入SDK &#xff08;1&#xff09;離線導入將上述下載到的SDK&#xff0c;直接將整個SDK資源文件拖進項目里&#xff0c;如下圖&#xff1a; 并且勾選以下3個選項 在點擊Finish&#xff0c;…

實時跟蹤并顯示Docker容器的最新日志

可以用以下命令實時跟蹤并顯示Docker容器的最新日志 例&#xff1a; 這條命令 docker logs --tail 200 -f docker1 的作用是&#xff1a; docker logs: 這部分指示要查看 Docker 容器的日志。--tail 200: 這個選項指定只顯示最后的200行日志。這意味著你將只看到容器最近生…

JavaSE簡易版掃雷小游戲

描述&#xff1a;用戶輸入二維雷區的高和寬&#xff0c;輸入確定地雷數&#xff0c;隨機在地雷區生成地雷。用戶輸入橫豎坐標進行挖雷&#xff0c;挖到地雷游戲以失敗結束&#xff0c;并讓用戶選擇是否再次游戲&#xff1b;沒挖到雷&#xff0c;顯示該區域8個方向地雷數。如果8…

安徽大學學報-哲學社會科學版

《安徽大學學報》&#xff08;哲學社會科學版&#xff09;簡介 安徽大學學報&#xff08;哲學社會科學版&#xff09;簡要信息 刊 號 CN 34—1040/C ISSN 1001—5019 主 編 張治棟 地 址 安徽省合肥市肥西路3號 郵 編 230039 電 話 &#xff08;0551&#xff09;6…

Spring MVC的高級功能——異常處理(三)異常處理注解

一、ControllerAdvice注解的作用 從Spring 3.2開始&#xff0c;Spring 提供了一個新注解ControllerAdvice&#xff0c; ControllerAdvice有以下兩個作用。 ? 注解作用在類上時可以增強Controller&#xff0c;對Controller中被RequestMapping注解標注的方法加一些邏輯處理。…