Commit be7048b5 authored by Filip Hanik's avatar Filip Hanik Committed by Andy Wilkinson

Avoid using reflection when configuring Tomcat listener

This benefits native image building and AOT compilation,
as reflection requires manual configuration.

See gh-22329
parent 177b3918
...@@ -16,8 +16,9 @@ ...@@ -16,8 +16,9 @@
package org.springframework.boot.autoconfigure.websocket.reactive; package org.springframework.boot.autoconfigure.websocket.reactive;
import org.apache.tomcat.websocket.server.WsContextListener; import java.util.Collections;
import org.apache.tomcat.websocket.server.WsSci;
import org.springframework.boot.web.embedded.tomcat.TomcatReactiveWebServerFactory; import org.springframework.boot.web.embedded.tomcat.TomcatReactiveWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.core.Ordered; import org.springframework.core.Ordered;
...@@ -33,7 +34,8 @@ public class TomcatWebSocketReactiveWebServerCustomizer ...@@ -33,7 +34,8 @@ public class TomcatWebSocketReactiveWebServerCustomizer
@Override @Override
public void customize(TomcatReactiveWebServerFactory factory) { public void customize(TomcatReactiveWebServerFactory factory) {
factory.addContextCustomizers((context) -> context.addApplicationListener(WsContextListener.class.getName())); factory.addContextCustomizers((context) ->
context.addServletContainerInitializer(new WsSci(), Collections.emptySet()));
} }
@Override @Override
......
...@@ -16,8 +16,9 @@ ...@@ -16,8 +16,9 @@
package org.springframework.boot.autoconfigure.websocket.servlet; package org.springframework.boot.autoconfigure.websocket.servlet;
import org.apache.tomcat.websocket.server.WsContextListener; import java.util.Collections;
import org.apache.tomcat.websocket.server.WsSci;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.core.Ordered; import org.springframework.core.Ordered;
...@@ -35,7 +36,8 @@ public class TomcatWebSocketServletWebServerCustomizer ...@@ -35,7 +36,8 @@ public class TomcatWebSocketServletWebServerCustomizer
@Override @Override
public void customize(TomcatServletWebServerFactory factory) { public void customize(TomcatServletWebServerFactory factory) {
factory.addContextCustomizers((context) -> context.addApplicationListener(WsContextListener.class.getName())); factory.addContextCustomizers((context) ->
context.addServletContainerInitializer(new WsSci(), Collections.emptySet()));
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment