2015-12-07 85 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); 
    } 

}