머리말
Spring Boot 프로젝트는 일반적으로 내장 Tomcat 또는 Jetty 서버에서 실행되며 전쟁 패키지를 사용하여 외부 서비스 컨테이너에 배치하지 않습니다. Linux에 배치하더라도 일반적으로 응용 프로그램 클래스를 직접 시작합니다. 그러나 때때로 우리는 외부 서버에 배포 해야하는데, 이는 Spring Boot에게는 약간 번거 롭습니다.
아래는 첫 번째 SpringBoot 프로젝트를 배포했을 때 Tomcat에서 발생하는 문제에 대한 기록입니다. 주의를 기울여야 할 세 가지 : 두통 ...
세부 사항은 다음과 같습니다.
1. SpringBoot는 자체 내장 Tomcat 컨테이너가 있으므로 내장 컨테이너를 사용하지 말고 Tomcat 버전 구성을 다음과 같이 지정하지 말아야합니다.
<pectionency> <groupid> org.springframework.boot </groupid> <artifactid> Spring-Boot-Starter-Tomcat 제공 </scope> </fectionency>
2. 응용 프로그램 클래스는 다음과 같이 변경해야합니다. 여기서 제외는 데이터베이스의 주석을 무시하는 것입니다 (데이터베이스를 만들지 않았습니다).
@SpringBootApplication (excringbootoPplication (exclude = {dataSourceAutoConfiguration.class, dataSourceTransactionManageraUtoconfiguration.class, hibernatejpaautoconfiguration.class}) public class 응용 프로그램 확장 springbootservletinitializer {@override proplicationbuilder (springapplicateed springApplicationbuilder) 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/0.0.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <modelversion> 4.0.0 </modelversion> <artifactid> wechatserver </artifactid> <parkaging> war </packaging> <url> http://maven.apache.org </url> <! <groupid> org.springframework.boot </groupid> <artifactid> 스프링-부트 스타터-팔렌트 </artifactid> <bersion> 1.4.0. release </version> </parent> <project.build.sourceencoding> utf-8 </project.build.sourceoding> <java.version> 1.8 </java.version> </properties> <pectionies> <pectionement> <groupid> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터 -web </artifactid> <!-내장 컨테이너를 제외하고, 전쟁을 제외하고-전쟁을 제외하고-외부의 컨테이너를 제외하고, 내장 된 컨테이너를 제외하고. </의존성> <pectionency> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-tomcat </artifactid> <scope> 제공 </scope> </dependency> <pelection> <groupid> javax.servlet </groupid> <artifactid> javax.servlet-pi.servle-pipi.server-pari. <pectionency> <groupId> mySQL </groupId> <artifactID> mySQL-connector-java </artifactID> </fectionency> <pectionency> <groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-jdbc </artifactid> <anplency> <domency> <artifactid> dom4j </artifactid> <bersion> 1.6.1 </version> </dependency> <pectionement> <groupid> com.xstream </groupid> <artifactid> xstream </artifactid> <bersion> 1.4.10 </version> </decomendency> <grouplid> org.spramwork.spramwork. <artifactid> Spring-Boot-DevTools </artifactid> <seleptional> true </septional> <!-선택 사항 = true, 종속성이 전달되지 않으며 프로젝트는 DevTools에 따라 다릅니다. MyBoot 프로젝트에 의존하는 프로젝트가 DevTools를 사용하려는 경우-> </fectionency> </fectionemencies> <!-포장 설정을 수정합니다-> <build> <plugins> <!-<flugin> <groupId> org.springframework.springframework.springframework.springframewort> spring-hoot-maven-plugin> -> <flugin> <groupid> org.apache.maven.plugins </groupid> <artifactid> maven-war-plugin </artifactid> <version> 2.4 </version> <configuration> <concoding> $ {project.build.sourceencoding} </encoding> <skiptests> <! -> <warname> wechatserver </warname> <!-Mave가 Mave가 활성화 될 때 (다른 패키지에서 테스트 할 때 메인 함수가 추가되기 때문에)-> <MainClass> $ {start-class} </mainclass> <skip> true </skip> <!-건너 뛰기 테스트-> <TreefailureIgnore> treefailureIgnore> <feaLonMissingWebXml> false </failonmissingwebxml> </configuration> </plugin> </plugins> </build> </project> 응용 프로그램 수업 :
패키지 wechatservice.app; org.springframework.boot.springApplication import; org.springframework.boot.autoconfigure.springbootapplication import; import org.springframework.boot.autoconfigure.jdbc.datasourceautoconfiguration; import org.springframework.boot.autoconfigure.jdbc.datasourcetransactionmanagerautoconfiguration; import org.springframework.boot.autoconfigure.orm.jpa.hibernatejpaautoconfiguration; org.springframework.boot.builder.springApplicationBuilder; org.springframework.boot.web.support.springbootservletinitializer; org.springframework.web.bind.annotation.requestmapping; org.springframework.web.bind.annotation.RestController; @SpringBootApplication (excringbootoPplication (exclude = {dataSourceAutoConfiguration.class, dataSourceTransactionManageraUtoconfiguration.class, hibernatejpaautoconfiguration.class}) public class 응용 프로그램 확장 springbootservletinitializer {@override proplicationbuilder (springapplicateed springApplicationbuilder) 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 (@PathVariable String myName) {return "hello"+myName+"!!!"; }}Application.Properties 용 포트 만 구성하지만 Tomcat에 배포 된 후 여기에서는 작동하지 않습니다.
Server.port = 80
내 디렉토리 구조 :
마지막으로 내 전체 코드 : http://xiazai.vevb.com/201803/yuanma/wechatserver(vevb.com).rar
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.