前言
成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
Spring Boot項(xiàng)目一般都是內(nèi)嵌tomcat或者jetty服務(wù)器運(yùn)行,很少用war包部署到外部的服務(wù)容器,即使放到linux中,一般也是直接啟動(dòng)Application類,但是有些時(shí)候我們需要部署到外部的服務(wù)器,這對(duì)于Spring Boot來說卻有點(diǎn)麻煩
下面就記錄下自己部署的第一個(gè)SpringBoot項(xiàng)目到Tomcat中遇到的問題,三個(gè)地方需要注意:頭疼……
詳細(xì)如下:
1、SpringBoot有自己內(nèi)置Tomcat容器,所以要告訴它不使用內(nèi)置容器,不指定Tomcat版本配置如下:
org.springframework.boot spring-boot-starter-tomcat provided
2、Application類需要如下改動(dòng),其中exclude是忽略數(shù)據(jù)庫的注解(我沒弄數(shù)據(jù)庫):
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } }
3、JDK版本要一直!我開始服務(wù)器用的jdk1.7,本地環(huán)境用的1.8,結(jié)果本地怎么調(diào)試運(yùn)行都正常,服務(wù)器tomcat啟動(dòng)正常,jsp訪問都正常,接口全部404,控制臺(tái)也沒有出現(xiàn)SpringBoot的標(biāo)示?。。?!研究了一整天……頭疼……
我的代碼:
pom.xml
4.0.0 wechatServer war http://maven.apache.org org.springframework.boot spring-boot-starter-parent 1.4.0.RELEASE UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat provided javax.servlet javax.servlet-api MySQL mysql-connector-java org.springframework.boot spring-boot-starter-jdbc dom4j dom4j 1.6.1 com.thoughtworks.xstream xstream 1.4.10 org.springframework.boot spring-boot-devtools true org.apache.maven.plugins maven-war-plugin 2.4 ${project.build.sourceEncoding} true wechatServer ${start-class} true true false
Application類:
package wechatService.app; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } }
Hello請(qǐng)求:
@RestController @RequestMapping public class LoginController { @RequestMapping("/hello/{myName}") String index(@PathVariable String myName) { return "Hello "+myName+"!!!"; } }
application.properties我這里只配置了端口,然而部署到tomcat以后這里就不起作用了:
server.port = 80
我的目錄結(jié)構(gòu):
最后我的完整代碼:http://xiazai.jb51.net/201803/yuanma/wechatServer(jb51.net).rar
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。