2015-12-07 116 views
1

我有一個工作良好的彈簧引導應用程序,在我創建JAR文件並執行時可以正常工作。Spring引導部署WAR

但是,當我按照這個tutorial在tomcat上部署WAR時,我無法擊中控制器。我不確定路徑。我試過localhost:8080/appname/controllervalue 它沒有給出任何迴應,我也沒有看到錯誤。

我打開了webapps文件夾並檢查了內容。我找到了一個web.xml文件,路徑爲空。所以我試了localhost:8080/controllervalue,這也沒有奏效。任何我缺少的東西?

我的POM文件

<?xml version="1.0" encoding="UTF-8"?><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/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.intbit</groupId> 
<artifactId>ImageRXWebServices</artifactId> 
<version>1</version> 
<packaging>war</packaging> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.2.7.RELEASE</version> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-maven-plugin</artifactId> 
     <version>1.2.3.RELEASE</version> 
     <type>jar</type> 
    </dependency> 

    <dependency> 
     <groupId>org.postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>9.3-1102-jdbc41</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>javax.transaction</groupId> 
     <artifactId>javax.transaction-api</artifactId> 
     <version>1.2</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>4.1.8.RELEASE</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jdbc</artifactId> 
     <version>4.1.8.RELEASE</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>4.1.8.RELEASE</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.json</groupId> 
     <artifactId>json</artifactId> 
     <version>20090211</version> 
     <type>jar</type> 
    </dependency> 
</dependencies> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>1.7</maven.compiler.source> 
    <maven.compiler.target>1.7</maven.compiler.target> 
    <tomcat.version>8.0.3</tomcat.version> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <!-- Build an executable JAR --> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

+0

查看http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle /#howto-traditional-deployment,看看是否應該有指針。如果您將.war文件部署到tomcat,則應該適當配置web.xml –

+1

這聽起來像您沒有將「SpringBootServletInitializer」子類添加到您的應用程序中。戰爭部署需要人員,以便在部署戰爭時啓動應用程序。 –

+0

只需注意:考慮升級到1.3 – Marged

回答

1

您需要添加WebApplicationInitializer如果你正在建設一個war文件並部署它SpringBootServletInitializer

在消費滿啓動時,您可以使用SpringBootServletInitializer

@SpringBootApplication 
public class Application extends SpringBootServletInitializer { 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

}