序文
スプリングブートプロジェクトは通常、埋め込まれたTomcatまたはJettyサーバーで実行され、外部サービスコンテナに展開するために戦争パッケージを使用することはほとんどありません。 Linuxに配置されたとしても、通常、アプリケーションクラスを直接開始します。ただし、外部サーバーに展開する必要がある場合があります。これは、Spring Bootでは少し面倒です。
以下は、最初のスプリングブートプロジェクトを展開したときにTomcatで発生した問題の記録です。注意を払う必要がある3つのこと:頭痛...
詳細は次のとおりです。
1. Springbootには独自の組み込みのTomcatコンテナがあるため、内蔵コンテナを使用しないように指示し、次のようにTomcatバージョンの構成を指定しないでください。
<Dependency> groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-tomcat </artifactid> <scope>
2.アプリケーションクラスは次のように変更する必要があります。除外されている場合は、データベースの注釈を無視することです(データベースを作成しませんでした)。
@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)exception {springApplication.run(application.class、args); }}3。JDKバージョンは常にでなければなりません!サーバーにJDK1.7、ローカル環境に1.8を使用し始めました。その結果、ローカルのデバッグとランニングは普通でした。サーバーTomcatは正常に開始され、JSPアクセスは正常で、すべてのインターフェイスは404で、コンソールにはスプリングブートサインがありませんでした! ! ! !一日中調査しました...頭痛...
私のコード:
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.apach/4.0. http://maven.apache.org/maven-v4_0_0.xsd "> <modelversion> 4.0.0 </modelversion> <artifactid> wechatserver </artifactid> <パッケージ> war </packaging> <url> http://maven.apache.org <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-boot-starter-parent </artifactid> <version> 1.4.0.release </version> </parent> <properties> <Project.build.sourceencoding> utf-8 < <java.version> 1.8 </java.version> </properties> <dependencies> <dependency> groupid> org.springframework.boot </groupid> <artifactid> spring-boot-startid> </dependency> <dependency> groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-tomcat </artifactid> <scope> revident </scope> </dependency> <依存関係> <依存関係> <groupid> javax.servlet </groupid <Dependency> groupId> mysql </groupid> <artifactid> mysql-connector-java </artifactid> </dependency> <dependency> springframework.boot </groupid> <artifactid> spring-boot-starter-jdbc <artifactid> dom4j </artifactid> <バージョン> 1.6.1 </version> </dependency> <dependency> groupid> com.thoughtworks.xstream </groupid> <artifactid> xstream </artifactid> <バージョン> 1.4.10 </バージョン> </依存関係> <artifactid> spring-boot-devtools </artifactid> <optional> true </optional> <! - optional = true、依存関係は渡されず、プロジェクトはdevtoolsに依存します。 Mybootプロジェクトに依存するプロジェクトがDevToolsを使用したい場合、再導入する必要があります - > </依存関係> </依存関係 - > <Plugin> <groupId> org.apache.maven.plugins </groupid> <artifactid> maven-war-plugin </artifactid> <version> 2.4 </version> <configuration> <encoding> $ {project.build.sourceencoding} - > <warname> wechatserver </warname> <! - メインパスが有効になったとき(他のパッケージでテストするときにもメイン関数が追加されるため) - > <mainclass> $ {start-class} </mainclass> <skip> true </skip> <! - skip test-> <testfailureignore <failOnmissingwebxml> false </failOnmissingwebxml> </configuration> </plugin> </plugins> </build> </project>アプリケーションクラス:
パッケージ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.hibernatejpauutoconfiguration; Import 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(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)exception {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へのご支援ありがとうございます。