Предисловие
Проекты Spring Boot обычно запускаются на встроенных серверах Tomcat или пристани, и они редко используют военные пакеты для развертывания на внешних контейнерах. Даже если они помещаются в Linux, они обычно запускают класс приложений напрямую. Тем не менее, иногда нам нужно развернуть на внешних серверах, что немного хлопотно для Spring Boot.
Ниже приведена запись о проблемах, столкнувшихся в Tomcat, когда вы развернули первый проект Springboot. Три вещи, на которые вам нужно обратить внимание: головные боли ...
Подробности следующие:
1. Springboot имеет свой собственный встроенный контейнер Tomcat, поэтому вы должны сказать ему не использовать встроенный контейнер и не указывайте конфигурацию версии Tomcat следующим образом:
<depervice> <groupid> org.springframework.boot </GroupId> <artifactId> Spring-boot-starter-tomcat </artifactid> <cerpope> предоставлен </scope> </depertion>
2. Класс приложений должен быть изменен следующим образом, где исключение - это игнорировать аннотацию базы данных (я не создавал базу данных):
@Springbootapplication (exkude = {dataSourCeautoConfiguration.Class, dataSourCetransActionManageraUtoConfiguration.class, hibernatejpaautoconfiguration.class}) Приложение для открытого класса Extends Springbootservilitiz Application.sources (Application.class); } public static void main (string [] args) бросает исключение {SpringApplication.run (application.class, args); }}3. Версия JDK должна быть всегда! Я начал использовать JDK1.7 для сервера и 1.8 для локальной среды. В результате это было нормально для местной отладки и бега. Сервер Tomcat начал обычно, доступ к JSP был нормальным, все интерфейсы были 404, а консоль не имела знака Springboot! ! ! ! Исследовал целый день ... головная боль ...
Мой код:
Pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <dolidyversion> 4.0.0 </modelversion> <artifactid> weChatserver </artifactid> <упаковка> War </url> <url> http://maven.apache.org </ur <groupId> org.springframework.boot </GroupId> <StrifactId> Spring-Boot-Starter-parent </artifactid> <sersive> 1.4.0.Release </version> </parent> <properties> <project.build.sourceEncoding> utf-8 </project.build.sourceencoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- Exclude built-in containers, exclude built-in containers from exporting them into war packages to allow external containers to run spring-boot projects--> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>dom4j</groupId> <TrifactId> dom4j </artifactid> <sersive> 1.6.1 </version> </dependency> <Depective> <groupId> com.thoughtworks.xstream </GroupId> <StrifactId> xStream </artifactId> <serse> 1.4.10 </version> </vehyed> <dependency> <groupid> org.springframe.bootwork.boot.boot.boot.boot.boot.boot.boot.boot.boot.bootwork <artifactid> spring-boot-devtools </artifactid> <plociate> true </oppution> <!-необязательный = true, зависимость не будет передана, проект зависит от Devtools; Если проект, который зависит от проекта MyBoot, хочет использовать DevTools, его необходимо вновь ввести-> </dependency> </depertive> <!-изменить настройки упаковки-> <buld> <blicins> <!-<blicin> <groupd> org.springframework.boot </GroupId> <StrifActId> spring-boot-maven-plugin-plugin-plugin. <blicin> <groupid> org.apache.maven.plugins </GroupId> <ArtifactId> mavenwar-plugin </artifactid> <serse> 2.4 </version> <ponfiguration> <concoding> $ {project.build.sourceEncoding} </encoding> <Skiptests> true </kiptSts> war!-war!-It in names> war!-in incoding> </skiptests> true </skipts> namoding> </namying> war!-ancoding> </skiptests> war!-incoding> </skiptests> war! <warname> wechatserver </warname> <!-Основной путь включен, когда Mave (потому что основная функция также добавляется при тестировании в других пакетах)-> <Mainclass> $ {start-class} </mainclass> <skip> true </skip> <!-Skip-test-> <testfailureignore> true </testfailureignore> <! <AffOnmissingWebxml> false </failonmissingWebxml> </configuration> </plugin> </plugins> </build> </project> Класс приложения:
пакет wechatservice.app; Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; Импорт org.springframework.boot.autoconfigure.jdbc.datasourceautoconfiguration; Импорт org.springframework.boot.autoconfigure.jdbc.datasourcetransactionmanagerautoconfiguration; Импорт org.springframework.boot.autoconfigure.orm.jpa.hibernatejpaatoconfiguration; Импорт org.springframework.boot.builder.springapplicationBuilder; Import org.springframework.boot.web.support.springbootservletinitializer; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.restcontroller; @Springbootapplication (exkude = {dataSourCeautoConfiguration.Class, dataSourCetransActionManageraUtoConfiguration.class, hibernatejpaautoconfiguration.class}) Приложение для открытого класса Extends Springbootservilitiz Application.sources (Application.class); } public static void main (string [] args) бросает исключение {SpringApplication.run (application.class, args); }} Привет запрос:
@RestController @Requestmapping public class logincontroller {@requestmapping ("/hello/{myname}") String index (@pathvarable string myname) {return "hello"+myname+"!!!"; "; }}Я настраиваю только порты для Application.properties, но после развертывания в Tomcat он здесь не будет работать:
Server.port = 80
Моя структура каталогов:
Наконец, мой полный код: http://xiazai.vevb.com/201803/yuanma/wechatserver(vevb.com).rar
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.