Springboot Https 协议 报错 容器重复问题

word_joke 2018-11-15 04:42:38
Springboot 1.5版本


启动类:里面配置了 Http 协议


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

@Bean
public Connector httpConnector(){
Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}

[color=#FF0000]启动Springboot 报错
Unable to start EmbeddedWebApplicationContext due to multiple EmbeddedServletContainerFactory beans : myEmbeddedServletContainerFactory,servletContainer

这两个myEmbeddedServletContainerFactory servletContainer 重复? 内嵌 Tomcat 我去掉了 加了一个 外置的Tomcat

现在容器重复了 我怎么修改?
这是Pom.xml 里面的配置:
<!-- 原生Tomcat依赖移除 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>

<!--因配置外部TOMCAT 而配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
...全文
90 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
word_joke 2018-11-15
  • 打赏
  • 举报
回复
解决了。。。。别的包下 Copy 多了个容器类。。。
word_joke 2018-11-15
  • 打赏
  • 举报
回复
@Bean
public EmbeddedServletContainerFactory servletContainer(){。。。}


@Bean
public Connector httpConnector(){。。。}

方法是这个 刚才的回复 那个Method 的发错了
word_joke 2018-11-15
  • 打赏
  • 举报
回复
注释掉了外嵌的Tomcat ,内嵌的放出来了,那个 Bean 没注释 还是这个问题

org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to multiple EmbeddedServletContainerFactory beans : myEmbeddedServletContainerFactory,servletContainer

这是启动类
@SpringBootApplication
public class StartApplication {

@Value("${http.port}")
private Integer port;

@Bean
public EmbeddedServletContainerFactory servletContainer() {。。。}

private Connector connector(){。。。}

}
咸哼酒家 2018-11-15
  • 打赏
  • 举报
回复
应该是内置的tomcat运行正常,外置之后就报错了是吧
打包到外置tomcat前将
EmbeddedWebApplicationContext 这个@Bean声明部分代码注释掉
然后再打包运行(内置环境不注释这部分代码)

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧