永远不会使用Springboot @RestController

时间:2018-01-23 18:09:10

标签: spring-boot

我在使用spring-boot应用程序时遇到了麻烦。它目前只暴露一个端点。而且它只有一个控制器来管理它。这是下面的代码。

它构建正常并且tomcat服务器运行,我得到 Whitelabel错误页面

Chrome控制台出现完整错误:无法加载资源:服务器响应状态为404.

src
--|main
----|java
------|com.domain.myproject.api
--------|Controller             <----(this is a package in intellij)
----------|RestController.java
--------|Springboot             <----(this is a package in intellij)
----------|SpringApplication.java

RESTController.java

package com.example.myproject.api.Controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RESTController {

    @GetMapping("/view/{id}")
    public String hello (@PathVariable("id") String id){
        return "return" + id;
    }

}

SpringApplication.java

package com.example.myproject.api.Springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class CustomsApiApplication {

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

POM-XML

这些依赖项,我将使用它。

<dependencies>
        <!--SpringBoot Dependencies-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- Camel dependencies -->
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-core</artifactId>
            <version>2.20.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-jms</artifactId>
            <version>2.20.1</version>
        </dependency>

        <!-- ActiveMQ dependencies -->
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-broker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-camel</artifactId>
        </dependency>
    </dependencies>

谢谢!

PS。也可以进入intellij运行控制台。 。

2018-01-23 18:28:14.879 ERROR 10541 --- [nio-8080-exec-1] 
o.s.d.r.w.RepositoryRestExceptionHandler : Could not resolve repository 
metadata for 1234.

2 个答案:

答案 0 :(得分:7)

根据Spring启动文档14.2 Locating the main application class,建议您将主应用程序类放在其他类之上的根包中。

@EnableAutoConfiguration注释通常放在您的主类上,它隐含地为某些项定义了一个基础“搜索包”。使用根包还允许使用@ComponentScan注释,而无需指定basePackage属性。这两个注释都在@SpringBootApplication中定义。

答案 1 :(得分:1)

似乎您的问题与软件包的结构有关,我建议您将CustomsApiApplication类从当前软件包删除到应为com.example.myproject的基本软件包

这个link确实帮了我