当前位置: 首页 > 面试题库 >

Spring Boot 2中缺少TomcatEmbeddedServletContainerFactory

白宏放
2023-03-14
问题内容

我有Spring
Boot应用程序版本1.5.x,该版本使用org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory,试图将其迁移到Spring
Boot 2,但是该应用程序无法编译,尽管它具有对的依赖org.springframework.boot:spring-boot-starter- tomcat。编译器发出以下错误:

error: package org.springframework.boot.context.embedded.tomcat

问题答案:

该类已被删除并替换org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory
为更多信息,请检查:Spring-Boot-2.0-Migration-Guide,其中说:

为了支持反应性用例,已对嵌入式容器的包装结构进行了相当广泛的重构。EmbeddedServletContainer已重命名为WebServer,并且org.springframework.boot.context.embedded包已重定位到org.springframework.boot.web.server。相应地,EmbeddedServletContainerCustomizer已重命名为WebServerFactoryCustomizer。

例如,如果要使用TomcatEmbeddedServletContainerFactory回调接口自定义嵌入式Tomcat容器,则现在应使用TomcatServletWebServerFactory,如果要使用EmbeddedServletContainerCustomizer
Bean,则现在应使用WebServerFactoryCustomizer Bean。

我遇到了需要发送更大请求的问题,然后允许使用默认大小:

@Bean
    public TomcatServletWebServerFactory containerFactory() {
        return new TomcatServletWebServerFactory() {
            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);
                    logger.info("Set MaxSwallowSize "+ maxSize);
                }
            }
        };

    }


 类似资料:
  • 问题内容: 我目前正在使用Java中的SQL。最近我收到此错误: 当我在连接字符串中添加参数时,会发生这种情况。该错误消息清楚地表明缺少sqljdbc_auth.dll,因此我尝试将dll放在与保留sqljdbc4.jar相同的路径中。 但是,这行不通,所以我想知道如何将这个dll添加到构建路径中?有特殊的方法吗? 问题答案: 好的,我发现了!我并不需要更改java.library.path,而是

  • 我有Spring Boot应用程序版本1.5.x,它使用,我正试图将它迁移到Spring boot2,但该应用程序没有编译,尽管对有依赖关系。编译器发出以下错误:

  • 问题内容: 在从openni编译演示时,我偶然发现了此错误: 我在Mac上执行此操作。我最好的猜测是该文件不在我的java.library.path中 我现在的问题是:这个猜测正确吗,以及如何在netbeans中添加到java.library.path中。 提前Thx 问题答案: 将此添加到projects属性的VM选项中:-Djava.library.path = / Users / olivi

  • 问题内容: 我使用以下命令在Ubuntu 12.04上安装了一个名为RYU的openflow控制器: 我试图使用ryu-manager运行python文件,如下所示。 然后我尝试使用以下方法安装gevent: 此错误的原因是什么?我试图找到使用,但没有成功。但是的输出是 系统上应该有吗?如果是这样,我应该安装什么来获得它? 问题答案: 应该这样做: 它将安装所有缺少的标题。这对我帮助很大。

  • 当尝试在glassfish 4.0(使用netbeans 7.3.1)中部署一个mavenized entreprise应用程序(包括war和jar项目)时,我遇到了与该问题类似的问题,即jar无效,因为它包含零ejb(这不是真的,因为我的应用程序jar包含4个实体类及其相应的会话bean和本地接口)。由于那篇文章中的解决方案是添加ejb-jar.xml,所以我也添加了我的部署描述符,编写如下:

  • 当我使用创建一个新的虚拟环境时,它会按照预期使用创建虚拟环境,但缺少: 到底是怎么回事?不应该有一个二进制文件吗?