部署到tomcat服务器时无法调用spring boot应用程序服务。

时间:2017-07-19 02:46:33

标签: spring rest tomcat spring-boot gradle

我有一个SpringBootApp,我可以在eclipse中通过右键执行然后选择Run as - > Java应用程序。但是,当我构建.war文件并将其部署到我的tomcat服务器时。控制台看起来应该已经部署了应用程序,但我无法点击我的休息服务。我收到404错误。我真的不知道为什么它不工作所以如果有人知道解决方案你能解释为什么...而且,当我查看我的war文件时,我看到部署应用程序所需的所有类文件。 您可以下载代码github.

控制器

package com.sample.pkg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
@ComponentScan("com.sample.pkg")
public class SampleController {

    @Autowired
    SampleComponent component;

    @RequestMapping("/sendOption")
    public String update(@RequestParam(value = "option") String option) {
        if (option.equalsIgnoreCase("option1")) {
            component.updateStatus(true);
            return "Something was updated";
        } else if (option.equalsIgnoreCase("option2")) {
            component.updateStatus(false);
            return "Something else was updated";
        }
        return "You have entered in an option that is invalid. Please enter a valid option.";
    }

    @RequestMapping("/getOption")
    public String control() {

        if (component.getStatus()) {
            return "option1";
        } else if (!component.getStatus()) {
            return "option2";
        }
        return "error";
    }

}

Application.java

package com.chicken.door;

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

@SpringBootApplication
@PropertySource("classpath:application.properties")
public class Application extends SpringBootServletInitializer {

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

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

}

的build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.3.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'war'

war {
    baseName = 'gs-spring-boot'
    version =  '0.1.0'
}  

jar {
    baseName = 'gs-spring-boot'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework.boot:spring-boot-starter-actuator")
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

输出:

2017-07-18 21:32:13.246  INFO 947 --- [           main] com.sample.pkg.Application               : Started Application in 10.6 seconds (JVM running for 10.976)

0 个答案:

没有答案