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 Files\JetBrains\IntelliJ IDEA 2018.1.5\lib中的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}" 

 

亂碼的問題: 后來將數據庫加密,去除之后,亂碼問題也解決了

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM