【问题标题】:Why does the endpoint path change with @SpringBootApplication?为什么端点路径会随着@SpringBootApplication 而变化?
【发布时间】:2017-06-22 11:06:02
【问题描述】:

如果我使用 Tomcat 运行我的项目,有效的 REST 调用将如下所示:

http://localhost:8080/rest-api/dl4j/we/getModelInfo?modelName=123

但是,如果我从带有 @SpringBootApplication 的 Java 主方法中启动它,我必须调用

http://localhost:8080/api/dl4j/we/getModelInfo?modelName=123

如何确保此路径对所有 REST 控制器保持相同?

这是我以编程方式运行服务器的方式:

public static void main(String[] args) {

    Runtime.getRuntime().addShutdownHook(new Thread(() -> {         
        LOGGER.info("EasyModelAccessServer Server is shutting down.");}
    ));

    SpringApplication.run(EasyModelAccessServer.class, args);
}

【问题讨论】:

  • 你为你的 server.contextPath 设置了什么?看看this
  • @SasiKathimanda 有趣 - 似乎 Spring 从未使用过我的 application.properties,因为它实际上说 api/ - 那么问题是为什么它忽略了这一点,因为我从内部直接使用 Tomcat 启动服务器Eclipse O_o

标签: spring


【解决方案1】:

上下文路径由 servlet 容器确定。例如,Tomcat 使用了复制到 web 应用程序目录中的 war 文件名。 在外部 WAR 部署中,当 Tomcat server.xml 配置有连接器时,您不能在应用程序配置(application.ymlapplication.properties)中指定它。

【讨论】:

    猜你喜欢
    • 2021-08-22
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 2021-10-04
    • 2015-04-05
    相关资源
    最近更新 更多