Spring启动应用程序不会在Tomcat服务器上启动

时间:2017-07-05 20:55:49

标签: java spring maven tomcat spring-boot

我正在尝试将spring启动应用程序作为WAR部署到tomcat服务器。我可以很好地构建和部署战争到tomcat服务器。当我启动服务器虽然我的春季应用程序永远不会运行。服务器启动就好了。我已经完成了Spring在这里所做的一切,

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file

我的项目有自己的自定义父POM,由2个模块组成。

我已经阅读了其他几个类似的线程,据我所知,我已经正确设置了一切,但显然有些错误。任何帮助将不胜感激。

感谢你!

父母pom

<groupId>com.project</groupId>
<artifactId>TelematicsNotificationSystem</artifactId>
<name>TelematicsNotificationSystem</name>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>

<properties>
    <java.version>1.8</java.version>
    <artifact-deployer.version>2.0.0-RELEASE</artifact-deployer.version>
    <cxf.version>2.5.2</cxf.version>
    <start-class>com.project.TNS.TelematicsNotificationSystem</start-class>
</properties>

<modules>
    <module>TelematicsNotificationSystem-wsclient</module>
    <module>TelematicsNotificationSystem-web</module>
</modules>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
        <version>1.5.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.5.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
        <version>1.5.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
        <version>1.5.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.5.6</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.ldap</groupId>
        <artifactId>spring-ldap-core</artifactId>
        <version>1.3.0.RELEASE</version>
    </dependency>       
</dependencies>

Web Project Pom

<artifactId>TelematicsNotificationSystem-Web</artifactId>
<name>TelematicsNotificationSystem-Web</name>
<packaging>war</packaging>


<parent>
    <groupId>com.project</groupId>
    <artifactId>TelematicsNotificationSystem</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</parent>

<properties>
    <start-class>com.project.TNS.TelematicsNotificationSystem</start-class>
</properties>



<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <resources>
                <resource>
                    <filtering>true</filtering>
                    <directory>src/main/resources/</directory>
                </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

我的申请类

package TNS;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;

@SpringBootApplication
public class TelematicsNotificationSystem extends SpringBootServletInitializer{

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

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(TelematicsNotificationSystem.class);
}

}

2 个答案:

答案 0 :(得分:1)

记住,一旦在Tomcat中部署,就刷新应用程序。可能效果很好,只需要刷新即可。

答案 1 :(得分:0)

虽然我同意Deinum的意见,但我需要清理我的Pom,而不是整体修复。解决方法是简单地将组件扫描添加到包含我的main方法的类中。

@SpringBootApplication
@ComponentScan(basePackageClasses = DashBoardController.class)
public class TelematicsNotificationSystem extends SpringBootServletInitializer

启动应用程序无法找到Controller,因此它可以处理我的任何映射请求。