spring boot version 1.3.0发布 .
错误日志是
13:00:50.888 [main]错误osboot.SpringApplication - 应用程序启动失败org.springframework.beans.factory.NoSuchBeanDefinitionException:在org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition中没有定义名为'stompWebSocketHandlerMapping'的bean (DefaultListableBeanFactory.java:698)〜[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE] org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175)~ [ spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)〜[spring-beans-4.2.3.RELEASE .jar:4.2.3.RELEASE]在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)〜[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]在org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1057)〜[spring-context-4.2.3.RELEASE . jar:4.2.3.RELEASE] at org.springframework.security.config.annotation.web.socket.AbstractSecurityWebSocketMessageBrokerConfigurer.afterSingletonsInstantiated(AbstractSecurityWebSocketMessageBrokerConfigurer.java:222)~ [spring-security-config-4.0.3.RELEASE.jar:4.0 .3.RELEASE] org.springframework上的org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:792)~ [spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE] .context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838)〜[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext . java:537)〜[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE] org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)~ [spring-boot org.springframework.boot上的-1.3.0.RELEASE.jar:1.3.0.RELEASE] . SpringApplication.refresh(SpringApplication.java:752)〜[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]在org.springframework.boot.SpringApplication.doRun(SpringApplication.java:347)〜[spring -boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]在org.springframework.boot.SpringApplication.run(SpringApplication.java:295)〜[spring-boot-1.3.0.RELEASE.jar:1.3 . 0.RELEASE]在com.d2js.platform.manager.Main.main(Main.java:28)[classes /:na]
我的websocket配置类
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Autowired
private final TeacherMonitorHandler teacherMonitorHandler = null;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(teacherMonitorHandler, "/websocket/teacherMonitor");
}
}
websocket安全配置类:
@Configuration
public class WebSocketSecurityConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer {
@Override
protected void configureInbound(MessageSecurityMetadataSourceRegistry messages) {
messages.anyMessage().permitAll();
}
}
1 回答
WebSocket Security用于STOMP子协议,并依赖于STOMP Broker Configuration .
您必须将
@EnableWebSocket
更改为@EnableWebSocketMessageBroker
并继续AbstractSecurityWebSocketMessageBrokerConfigurer
配置 .顺便说一句,在这种情况下你不需要
WebSocketConfigurer
.