Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory

1.今天开始学习spring boot.按照惯例先来个hello world,先跑一把.结果按照网上其它大神的示例.不管怎么生成示例.maven生成 , spring.io生成的每一个跑起来都会显示.Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory.错误打印,然后就退出了.按照其它网友的做法,怎么弄都不行.
2.实在没办法下了一个别人的helloworld示例,结果别人的就没问题.然后我再把各种配置对照了一遍,基本一模一样.就差把类名改成一样的了.结果还是那个问题
3.没办法了,去看源码这个错误到底代表什么.然后大体看了下,这个是mvc进行dispatch的时候.需要至少有一个ServletWebServerFactory子类的对象来接收处理请求.那这里的问题应该就是tomcat没有主动拉起了.至于为什么同样的代码我的为什么没拉,别人的就拉成功了.那就不是现在能知道的了,先跑起来再说吧.

那么,既然你系统不拉.我自己手动拉一个总可以吧.参照源码里面的示例代码.自己拉一个,结果就没问题了.成功跑起来了.代码如下

package com.bruk;

import com.bruk.Controller.HelloController;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.apache.catalina.connector.Connector;
import org.springframework.web.bind.annotation.RequestMapping;

@SpringBootApplication
public class ApplicationRun {

    @Bean
    public ServletWebServerFactory servletContainer() {
        System.out.println("++++++++++++++++++++++++++++++++++++++++");
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }

    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(0);
        return connector;
    }

    @RequestMapping("/hello")
    public String hello(){
        return "ApplicationRun hello方法";
    }

    public static void main(String[] args){
        SpringApplication.run(ApplicationRun.class ,args);
    }
}


主动拉的是servletContainer这个接口.注意这个方法是个Bean的注解方法.程序在启动时会自己把它注册到Bean的Map中.好了,这里至少给了一个ServletWebServerFactory了.这下不为0了,总可以跑过去了吧.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bruk_spp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值