Java Can';无法发现端点url

Java Can';无法发现端点url,java,spring-boot,Java,Spring Boot,所以今天我开始使用SpringBoot,我的重点是用SpringBoot创建一个RESTAPI 我创建了一个带有rest控制器和简单模型的小项目。我正在尝试从rest控制器调用该方法(没有成功) 控制器: @RestController public class RestController { @RequestMapping(method = RequestMethod.GET, produces =

所以今天我开始使用SpringBoot,我的重点是用SpringBoot创建一个RESTAPI

我创建了一个带有rest控制器和简单模型的小项目。我正在尝试从rest控制器调用该方法(没有成功)

控制器:

@RestController

    public class RestController {

            @RequestMapping(method = RequestMethod.GET, 
                            produces = MediaType.APPLICATION_JSON_VALUE,
                            value = "/something")
            public @ResponseBody Something getSomething(){
                Something s = new Something ();
                return s;
            }
    }
主要内容:

以及应用程序属性:

server.port=8081
spring.data.rest.basePath=/micro
因此,如果我有一个基本路径/端口和一个映射。。通常我只需要使用localhost:8081/micro/something。但唯一的原因是,当我使用API客户机时,我没有找到404作为端点/某物。如果有什么东西不见了,谁能告诉我?(错过了一些声明/)

我从我试图使用(例如)RequestMappingHandlerMapping的堆栈中阅读了另一篇文章


注意:使用Tomcat8运行的项目。我已经试过localhost:8081/什么的;本地主机:8081/micro等;根据文档,在rest控制器上添加了一些urlmapping注释:

spring.data.rest.base path=#spring数据rest使用的基本路径 公开存储库资源

尝试使用
基本路径
而不是
基本路径

spring.data.rest.base-path=/micro
或者尝试设置
dispatcherServlet
路径,如下所示:

server.contextPath=/micro
对于SpringBoot 2.0+:

server.servlet.context-path=/micro
搜索以下日志:

o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [$URL]
s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/root/test],methods=[GET]}" onto public java.lang.String com.test.Rest.getSomething()

我建议不要使用
server.contextPath
spring.data.rest.base path
。我面临着不同的命运

请使用API的所有路径声明一个类:

public static final class RequestPath {
    public static final String BASE = "/micro";

    public static final String SOMETHING = BASE + "/something";
}
并在控制器中使用它:

@RestController
public class RestController {
    @RequestMapping(value = RequestPath.SOMETHING)
    @ResponseBody
    public Something getSomething() {}
}
最后你得到的是:

  • 一个文件中的所有路径。这有助于同时看到它
  • 文档(如果您不使用Swagger或Raml)
  • 您不关心
    基本路径
    设置,这可能会产生不同的效果(+您肯定知道到所需端点的正确请求路径)

  • spring.data.rest.base路径将不起作用,因为它是专门为spring数据rest设计的。你可以检查这张票

    作为一种解决方法,您可以使用@oleg.cherednik建议的内容,或者升级到spring boot 2.0并使用此工具

    server.servlet.context-path=/micro
    

    我两个都试过了,但还是不起作用。。您尝试过:/micro/something(或者类似的东西,对吧?@Tazz在日志中搜索
    o.s.b.w.servlet.ServletRegistrationBean
    ,URL是什么?
    server.servlet.context-path=/micro