Document need for ServerEndpointExporter and show its use in a sample
Traditionally, a @ServerEndpoint-annotated bean is found by a servlet container initialiser, however Boot does not run servlet container initialisers when an embedded container is being used. To be able to use @ServerEndpoint in a Boot app that uses embedded Tomcat a ServerEndpointExporter bean must be declared. This commit updates the documentation to describe this requirement and also updates the WebSockets sample to illustrate the use of ServerEndpointExporter. The version of Spring Framework has been updated to 4.0.8.BUILD-SNAPSHOT. This picks up the fix for SPR-12340. Closes gh-1722
This commit is contained in:
@@ -617,6 +617,26 @@ change the version properties, e.g. for a simple webapp or service:
|
||||
|
||||
|
||||
|
||||
[[howto-create-websocket-endpoints-using-serverendpoint]]
|
||||
=== Create WebSocket endpoints using @ServerEndpoint
|
||||
If you want to use `@ServerEndpoint` in a Spring Boot application that used an embedded
|
||||
container, you must declare a single `ServerEndpointExporter` `@Bean`:
|
||||
|
||||
[source,java,indent=0,subs="verbatim,quotes,attributes"]
|
||||
----
|
||||
@Bean
|
||||
public ServerEndpointExporter serverEndpointExporter() {
|
||||
return new ServerEndpointExporter();
|
||||
}
|
||||
----
|
||||
|
||||
This bean will register any `@ServerEndpoint` annotated beans with the underlying
|
||||
WebSocket container. When deployed to a standalone servlet container this role is
|
||||
performed by a servlet container initializer and the `ServerEndpointExporter` bean is
|
||||
not required.
|
||||
|
||||
|
||||
|
||||
[[howto-spring-mvc]]
|
||||
== Spring MVC
|
||||
|
||||
|
||||
Reference in New Issue
Block a user