今天踩了一個坑記錄下,springboot項目,整合webstock,總是報以下錯誤
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webSocketServer': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class
...
Caused by: java.lang.IllegalStateException: Failed to introspect Class [com.safesys.monitoring.util.WebSocketServer] from ClassLoader [org.springframework.boot.devtools.restart.classloader.RestartClassLoader@2f6f3352]
...
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:248)
...
Caused by: java.lang.ClassNotFoundException: javax.websocket.Session
...
Disconnected from the target VM, address: '127.0.0.1:50767', transport: 'socket'
剛剛開始,各種找錯,發現只要添加 ServerEndpointExporter 就報錯了
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
也找過很多帖子,讓你注釋啟動test類的@RunWith(SpringRunner.class) 或者修改@SpringBootTest為測試環境之類的
反正各種找,准備放棄的時候,我嘗試看看tomcate自身問題,因為要打war,之前pom做過修改
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--聲明spring boot內嵌tomcat的作用范圍 在運行時不起作用-->
<scope>provided</scope>
</dependency>
看了注釋,我注釋了<scope>provided</scope> ,然后刷新包,發現真可以啟動了,暫時先記錄下,這個還是容器依賴的問題,要讓springboot內置tomcate和web生效才行,沒時間,就到這把,記錄下