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

Spring Boot 2中缺少TomcatEmbeddedServletContainerFactory

蒋招
2023-03-14

我有Spring Boot应用程序版本1.5.x,它使用org.springframework.Boot.context.embedde.Tomcat.TomcatEmbeddedServletContainerFactory,我正试图将它迁移到Spring boot2,但该应用程序没有编译,尽管对org.springframework.Boot:spring-boot-starter-tomcat有依赖关系。编译器发出以下错误:

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

共有1个答案

柳项明
2023-03-14

在Spring boot 2.0.0.Release中,您可以用以下代码替换::

@Bean
public ServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
        @Override
        protected void postProcessContext(Context context) {
            SecurityConstraint securityConstraint = new SecurityConstraint();
            securityConstraint.setUserConstraint("CONFIDENTIAL");
            SecurityCollection collection = new SecurityCollection();
            collection.addPattern("/*");
            securityConstraint.addCollection(collection);
            context.addConstraint(securityConstraint);
        }
    };
    tomcat.addAdditionalTomcatConnectors(redirectConnector());
    return tomcat;
}

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

  • 问题内容: 我有Spring Boot应用程序版本1.5.x,该版本使用,试图将其迁移到Spring Boot 2,但是该应用程序无法编译,尽管它具有对的依赖。编译器发出以下错误: 问题答案: 该类已被删除并替换 为更多信息,请检查:Spring-Boot-2.0-Migration-Guide,其中说: 为了支持反应性用例,已对嵌入式容器的包装结构进行了相当广泛的重构。EmbeddedServl

  • 问题内容: 在从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,所以我也添加了我的部署描述符,编写如下:

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