Wie kann ich Netty mit Spring Boot 2.1 Webflux anpassen?Java

Java-Forum
Anonymous
 Wie kann ich Netty mit Spring Boot 2.1 Webflux anpassen?

Post by Anonymous »

Ich möchte Netty in meinem Spring Boot Webflux-Projekt anpassen. In meinem POM habe ich Spring Boot Webflux- und Spring Boot Actuator-Abhängigkeiten hinzugefügt. Als Nächstes habe ich die Methode „customize()“ von WebServerFactoryCustomizer überschrieben, wie in der Spring-Dokumentation beschrieben.

Code: Select all

@Component
public class NettyConfiguration implements WebServerFactoryCustomizer {

@Override
public void customize(NettyReactiveWebServerFactory factory) {
factory.addServerCustomizers(new NettyCustomizer());
}
}
Dann habe ich das Netty-Bootstrapping in meinem NettyCustomizer implementiert:

Code: Select all

public class NettyCustomizer implements NettyServerCustomizer {

private final EventLoopGroup bossGroup = new NioEventLoopGroup(22);
private final EventLoopGroup workerGroup = new NioEventLoopGroup();

@Override
public HttpServer apply(HttpServer httpServer) {
return httpServer.tcpConfiguration(tcpServer ->
tcpServer.bootstrap(serverBootstrap ->
serverBootstrap
.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.handler(new LoggingHandler(LogLevel.DEBUG))
.childHandler(new ChannelInitializer() {
@Override
public void initChannel(final SocketChannel socketChannel) {
socketChannel.pipeline().addLast(new BufferingInboundHandler());
}
})
.option(ChannelOption.SO_BACKLOG, 128)
.childOption(ChannelOption.SO_KEEPALIVE, true))
.port(8899)
);
}
}
Wenn ich jetzt die Spring Boot-Anwendung starte, erhalte ich die Fehlermeldung „Netty konnte nicht gestartet werden“.

Code: Select all

org.springframework.boot.web.server.WebServerException: Unable to start Netty
Caused by: java.lang.IllegalStateException: group set already
Es scheint also keine Möglichkeit zu geben, das Netty-Bootstrapping zu überschreiben, wenn Webflux verwendet wird. Das Ändern der Methode „addServerCustomizers()“ in „setServerCustomizers()“ in der Methode „customize()“ führt leider zu denselben Ausnahmen. Weiß jemand, wie man Netty zusammen mit Spring Boot anpassen kann?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post