zoukankan      html  css  js  c++  java
  • springboot2.0jar包启动异常

    今天碰到一个异常:

    08:44:07.214 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
    org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.s
    : Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

    提示明显,没有servletweb容器。

    按说springboot是有内置容器的。后来查找看到帖子:https://blog.csdn.net/riyunzhu/article/details/63259718

    但是我的jdk1.8,没有问题,估计版本兼容问题。按照上述的解决方案,在启动类添加代码:

        @Bean
        public EmbeddedServletContainerFactory servletContainer() {
            TomcatEmbeddedServletContainerFactory factory = 
                          new TomcatEmbeddedServletContainerFactory();
            return factory;
         }

    提示找不到 EmbeddedServletContainerFactory类。查找后知道:EmbeddedServletContainerFactory找不到,是springboot2.X之后改了写法。

    详情参见帖子:https://blog.csdn.net/l4642247/article/details/81631770

    后改为:

        @Bean
        public TomcatServletWebServerFactory servletContainer() {
            TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
            return factory;
        }

    打包成功,可以正常启动项目了。

    在这里贴下idea快捷键:https://www.cnblogs.com/zhangpengshou/p/5366413.html

    idea打包maven项目:https://www.jb51.net/article/141962.htm

    以前都用thymeleaf,记录下spring项目支持jsp

    <!-- 使用 jsp 必要依赖 -->
        <dependency>
          <groupId>org.apache.tomcat.embed</groupId>
          <artifactId>tomcat-embed-jasper</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>jstl</artifactId>
        </dependency>

     另外:打包后,启动jar包显示“中没有主清单属性” 需要在配置中将

    MANIFEST.MF放到main/resources下。

    另外需要maven打包jsp需要添加:

    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
            <resources>
                <resource>
                    <!-- 指定resources插件处理哪个目录下的资源文件 -->
                    <directory>src/main/webapp</directory>
                    <!--注意此次必须要放在此目录下才能被访问到 -->
                    <targetPath>META-INF/resources</targetPath>
                    <includes>
                        <include>**/**</include>
                    </includes>
                </resource>
            </resources>
        </build>
  • 相关阅读:
    Centos7更改网卡名为eth0
    Centos7部署Open-Falcon监控
    centos6.x一键15项系统优化(转自努力哥)
    运维题目(十三)
    运维题目(十二)
    Mongodb的学习整理(下)
    Centos7下yum安装mongodb
    浏览器缓存
    控制反转
    js setTimeOut()
  • 原文地址:https://www.cnblogs.com/PPBoy/p/9758376.html
Copyright © 2011-2022 走看看