解决SpringBoot使用Undertow启动时警告日志:Undertow Buffer pool was not set on WebSocketDeploymentInfo

2020-06-13 20:29:34.388  WARN 21908 --- [           main] io.undertow.websockets.jsr               : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used

看提示让你设置一下buffer pool,不然他就使用默认的

这个警告不影响使用,但是看着别扭,于是

根据官方文档,和源码,自定义配置

package run.halo.app.task.config;
/**
 * @author 曹辰
 * @PackgeName: run.halo.app.task.config
 * @Description: TODO()
 * @date 2020/6/13 23:53
 */
import io.undertow.server.DefaultByteBufferPool;
import io.undertow.websockets.jsr.WebSocketDeploymentInfo;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.stereotype.Component;
/**
 *  undertow警告Buffer pool was not set on WebSocketDeploymentInfo
 *  看提示让你设置一下buffer pool,不然他就使用默认的
 *  这个警告不影响使用,但是看着别扭,于是
 *  根据官方文档,和源码,自定义配置
 * @time 2020/6/13 23:54
 * @return
 */
@Component
public class CustomizationBean implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {
    @Override
    public void customize(UndertowServletWebServerFactory factory) {
        factory.addDeploymentInfoCustomizers(deploymentInfo -> {
            WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
            webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(false, 1024));
            deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo);
        });
    }
}


原文:http://330680.xyz/archives/解决springboot日志警告bufferpoolwasnotsetonwebsocketdeploymentinfo