当前位置: 首页 > 知识库问答 >
问题:

Spring boot 2.1.0管理服务器端口位于不同端口上

张丰
2023-03-14

在我的spring Boot2.0应用程序中,我的主应用程序监听端口1234,我想让管理服务器运行在1235上。

management.server.port=1235

我的服务器无法启动,出现以下错误:

如果我移除这个:

@Bean
public TomcatServletWebServerFactory containerFactory() {
    return new TomcatServletWebServerFactory() {
        @Override
        protected void customizeConnector(Connector connector) {
            int maxSize = 50000000;
            super.customizeConnector(connector);
            connector.setMaxPostSize(maxSize);
            connector.setMaxSavePostSize(maxSize);
            if (connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {

                ((AbstractHttp11Protocol <?>) connector.getProtocolHandler()).setMaxSwallowSize(maxSize);
            }
        }
        t
    };

}

谢谢!

共有1个答案

督建柏
2023-03-14

您的TomCatWebServerFactory子类是一个匿名内部类。它需要是一个静态的内部类或顶级类,以便可以实例化:

@Bean
public TomcatServletWebServerFactory containerFactory() {
    return new CustomTomcatServletWebServerFactory();
}

static final class CustomTomcatServletWebServerFactory
        extends TomcatServletWebServerFactory {

    @Override
    protected void customizeConnector(Connector connector) {
        int maxSize = 50000000;
        super.customizeConnector(connector);
        connector.setMaxPostSize(maxSize);
        connector.setMaxSavePostSize(maxSize);
        if (connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {
            ((AbstractHttp11Protocol<?>) connector.getProtocolHandler())
                    .setMaxSwallowSize(maxSize);
        }
    }

}

或者,您可以使用自定义程序,而不是子类化TomcatServletWebServerFactory:

@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> tomcatCustomizer() {
    return (tomcat) -> tomcat.addConnectorCustomizers((connector) -> {
        int maxSize = 50000000;
        connector.setMaxPostSize(maxSize);
        connector.setMaxSavePostSize(maxSize);
        if (connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {

            ((AbstractHttp11Protocol<?>) connector.getProtocolHandler())
                    .setMaxSwallowSize(maxSize);
        }
    });
}
 类似资料:
  • 我有一个通过X509验证的API。但是,我需要从身份验证中绕过我的执行器健康检查endpoint,这样我就可以在没有客户端证书的情况下进行健康检查。 我意识到,这可以通过使用不同的端口来实现,用于执行器endpoint将命中的服务器和管理。 我的application.yml配置如下: 我的问题是,即使使用这种配置,管理endpoint也不是我可以访问健康endpoint的地方。http://lo

  • 该功能可以对您应用开放的端口进行一个调整。 该功能对容器开放的端口进行调整,初始化完之后尽量不动。因为它可能关联问Service、Deployment、Ingress、VirtualService等资源。

  • 我有一个监听两个不同端口的TCP服务器。我创建了两个不同的套接字,一个在端口8888上,一个在端口6634上。我监听这些端口,然后我在FD_SET中添加两个套接字,并将它们传递给Select()函数...当套接字准备好读取时,我检查FD_ISSET,看看哪个端口上有消息要读取。 不管怎样,当我连接到8888端口时,构思是成功的,我可以向服务器发送和接收。。。当我在客户端ctrl c时,选择函数再次

  • 嗨,我的问题很简单: 我尝试通过TCP连接建立UDP连接(因为多个客户端通过多个通道连接到服务器,我想通过主TCP连接识别相同的客户端) 我通过在客户机上创建TCP和UDP套接字来实现这一点,并通过TCP将操作系统随机分配的本地UDP端口传输到服务器。(在Windows上,我通过getsocketname()获得sendto()之后的端口)。在服务器上,我使用这个端口将UDP数据包发送到这个客户机

  • 这很有效 app@[服务器:/u01/主页/apli/app/trx/appS\u appS/appS\u appS/日志]:/ IBM/AIX RISC System/6000的TNS Ping实用程序:版本10.2.0.4.0-2015年9月8日01:01:57生产 版权所有(c)1997、2007,Oracle。保留所有权利。 使用的参数文件: /u01/home/app/oracle/pr

  • 问题内容: 我要对服务器进行编程,但是想知道我的想法是否可能。我的程序将在多个端口上输出到多个客户端-每个端口都可以由多个客户端访问。 通常,我会使用线程套接字服务器,但是在这种情况下,我需要它可用于多个端口。我想到的用法是下面一个模糊的伪代码: 启动服务器 侦听多个端口上的传入连接 识别正在连接的端口 如果是端口1,请启动一个线程以侦听客户端并输出消息类型 如果是端口2,请启动一个线程以侦听客户