Prefácio
Os projetos de inicialização da primavera geralmente são executados em servidores incorporados do TomCat ou Jetty e raramente usam pacotes de guerra para implantar em contêineres de serviço externos. Mesmo se colocado no Linux, eles geralmente iniciam a classe de aplicativo diretamente. No entanto, às vezes precisamos implantar para servidores externos, o que é um pouco problemático para a inicialização da primavera.
Abaixo está um registro dos problemas encontrados no Tomcat quando você implantou o primeiro projeto de troca. Três coisas que você precisa para prestar atenção: dores de cabeça ...
Os detalhes são os seguintes:
1. O Springboot possui seu próprio contêiner Tomcat embutido; portanto, você deve dizer que não usa o contêiner embutido e não especifique a configuração da versão do tomcat da seguinte forma:
<Depencency> <PuerpId> org.springframework.boot </frugiD> <ArtifactId> Spring-boot-starter-tomcat </sutifactId> <coCope> fornecido </scope> </pendencence>
2. A classe de aplicativo precisa ser alterada da seguinte maneira, onde exclua a anotação da anotação do banco de dados (não fiz o banco de dados):
@SpringbooTApplication (exclude = {DataSourCeautoconfiguration.class, DataSourCetransactionManageRautoconfiguration.class, hibernatejpaautoconfiguration.cllass}) Application publicBringLoTerLoTSLATERLIGINER (@OverRideRide} SpringAppLicationB SpringBoTRAtleTerLizer {@OverRideRide Application.sources (Application.class); } public static void main (string [] args) lança a exceção {springapplication.run (application.class, args); }}3. A versão JDK deve ser sempre! Comecei a usar o JDK1.7 para o servidor e 1.8 para o ambiente local. Como resultado, era normal para a depuração e corrida local. O servidor Tomcat começou normalmente, o acesso ao JSP era normal, todas as interfaces eram 404 e o console não tinha sinal de troca! ! ! ! Pesquisado por um dia inteiro ... dor de cabeça ...
Meu código:
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"> <modelVersion>4.0.0</modelVersion> <artifactId>wechatServer</artifactId> <packaging>war</packaging> <url>http://maven.apache.org</url> <!-- Inherit defaults from Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>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> <pendency> <voundid> org.springframework.boot </frupid> <TRATIFACTID> Spring-boot-starter-tomcat </stutifactId> <sCOPE> fornecido </scope> </dependency> <pendency> <puperid> javax.sertlet- </grupuld> <stiftidy> javax. <Depencency> <PuerpId> mysql </frugiD> <stifactId> mysql-conector-java </artifactId> </dependency> <pendence> <puerpid> org.springframework.boot </groupid> <stifactid> spring-boot-starter-jdbc </stifactId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.10</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <TRATIFACTID> Spring-boot-devtools </stutifactId> <cptional> true </cptional> <!-opcional = true, a dependência não será passada, o projeto depende de Devtools; Se o projeto que depende do projeto MyBoot deseja usar o Devtools, ele precisa ser reintroduzido-> </dependency> </dependências> <!-modifique as configurações de embalagem-> <bruct> <clugins> <!-<tlugin> <rugnid> org.springFramework.Boot </GroupId> <strofactId> primavera <plugId> spring-BronBOT-BOTBOT-BOTBOT-Spring- Spring- Spring- <Plugin> <PuerpId> org.apache.maven.plugins </groupiD> <TRATIFACTID> maven-war-plugin </artifactId> <versão> 2.4 </versão <figuration> <coding> $ {Project.build.sourcecoding} </coding> <pkging> <Varname> wechatserver </arname> <!-caminho principal habilitado quando mave (porque a função principal também é adicionada ao testar em outros pacotes)-> <mainClass> $ {start-class} </mainClass> </skip> true </skip> <!-Skip Test-> <TestFailuregnore> True </Testfal <FailonMissingWebxml> false </failonMissingWebxml> </frifiguration> </plugin> </plugins> </fruct> </project> Classe de aplicação:
pacote wechatservice.app; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbootApplication; importar org.springframework.boot.autoconfigure.jdbc.datasourceAutoconfiguration; importar org.springframework.boot.autoconfigure.jdbc.dataSourceTransactionManageRautoconfiguration; importar org.springframework.boot.autoconfigure.orm.jpa.hibernatejpaautoconfiguration; importar org.springframework.boot.builder.springApplicationBuilder; importar org.springframework.boot.web.support.springbootSertletinitializer; importar org.springframework.web.bind.annotation.requestmapping; importar org.springframework.web.bind.annotation.restcontroller; @SpringbooTApplication (exclude = {DataSourCeautoconfiguration.class, DataSourCetransactionManageRautoconfiguration.class, hibernatejpaautoconfiguration.cllass}) Application publicBringLoTerLoTSLATERLIGINER (@OverRideRide} SpringAppLicationB SpringBoTRAtleTerLizer {@OverRideRide Application.sources (Application.class); } public static void main (string [] args) lança a exceção {springapplication.run (application.class, args); }} Olá solicitação:
@RestController @RequestMapping classe pública Logincontroller {@RequestMapping ("/hello/{myName}") string index (@pathvariable string myName) {return "hello"+myName+"!!!"; }}Eu só configuro portas para aplicação.properties, mas após a implantação para o tomcat, ele não funcionará aqui:
server.port = 80
Minha estrutura de diretório:
Finalmente, meu código completo: http://xiazai.vevb.com/201803/yuanma/wechatserver(vevb.com).rar
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.