zoukankan      html  css  js  c++  java
  • spring boot打war包发布

    由于公司一贯的方式都是将war包布在中间件tomcat下运行

    所以这次springboot项目需要打war包

    how to?

    第一步:pom.xml 文件中,打包方式需要修改成war    

    <packaging>war</packaging>

    第二步:pom.xml 文件中,spring-boot-starter-web下需要移除自带的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>


    第三步:修改启动类,继承SpringBootServletInitializer
    @SpringBootApplication
    @EnableScheduling

    public class Application extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    // 注意这里要指向原先用main方法执行的Application启动类
    return builder.sources(Application.class);
    }
    }
    第四步:pom.xml 中添加依赖,否则报错

    cannot access javax.servlet.ServletException
    [ERROR] class file for javax.servlet.ServletException not found



    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
    </dependency>

    遇到的问题:

    1. lomkor 日志文件依赖的jar包,下载不了,我这边将日志部分删除了

    2. nested exception is java.lang.NoClassDefFoundError: javax/el/ELManager
    springboot 2.*的版本支持jdk1.8+, tomcat 最好是8.+。 我这边用的是7.0.42,所以需要将jar包 C:Program FilesJetBrainsIntelliJ IDEA 2018.1.5lib中的el-api.jar包复制到tomcat的lib下
    重启tomcat 生效

    3. 打开页面,能打开了,但是发现一个问题,页面跳转的时候,有时候能将war包名字带着,有时候不能

    点击新增按钮 

    新增之后点击确认增加

    url中少了war包名称uuu

    还有一个报错,却不影响执行
    nested exception is javax.validation.ValidationException: HV000183: Unable to initialize 'javax.el.E
    pom.xml 中没有引入对应的jar依赖
    我引入一下,重现打包,部署后发现错误still exists
    <dependency>
    <groupId>javax.el</groupId>
    <artifactId>javax.el-api</artifactId>
    <version>2.2.4</version>
    </dependency>
    <dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>javax.el</artifactId>
    <version>2.2.4</version>
    </dependency>

    后来还发现,中文乱码问题

     路径跳转问题,将action 修改成为 th:action = "@{/xxx}" 

    乱码的问题: 后来将数据库加密,去除之后,乱码问题也解决了

    
    
  • 相关阅读:
    P3396 哈希冲突 分块
    大数据之路week01--自学之面向对象java(static,this指针(初稿))
    大数据之路week01--自学之集合_2(列表迭代器 ListIterator)
    大数据之路week01--自学之集合_2(List)
    大数据之路week01--自学之集合_2(Iterator迭代器)
    大数据之路week01--自学之集合_1(Collection)
    大数据之路day05_1--初识类、对象
    大数据之路day04_2--经典bug(equals与==比较不同,break的跳出不同)
    大数据之路day04_1--数组 and for循环进阶
    eclipse断点的使用---for循环举例
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/10177803.html
Copyright © 2011-2022 走看看