如何让我的Spring Boot应用程序接受绝对uri?

时间:2018-07-27 11:37:51

标签: spring rest http spring-boot

当我的客户端应用程序发出POST请求时,它将“ Request URI”参数设置为绝对URI,例如:

  

请求URI:http://myapp.heroku.com/mainpage

执行此操作时,会收到此错误响应

  

400错误的请求

如果我的客户端应用程序使用相对URI,例如

  

请求URI:/ mainpage

请求成功

当前我的SpringBootApplication具有此方法

  @RequestMapping("/mainpage")
  String index() {
    System.err.println("Hello, logs!");
    return "index";
  }

如何让我的应用程序接受像 http://myapp.heroku.com/mainpage )这样的绝对uri?)?

2 个答案:

答案 0 :(得分:1)

在您的application.yaml的{​​{1}}集中

src\main\resources

如果要替换localhost,则可以用DevOps的方式进行操作,并且可以(如果您是UNIX家伙)将主机文件server: context-path: /mainpage 添加到localhost 127.0.0.1 /etc/hosts之后,或者(如果您是Windows,家伙)myapp.heroku.com

答案 1 :(得分:-2)

您正尝试将Jetty用作嵌入式容器,as stated in the Spring Boot documentation嵌入式Jetty不支持JSP:

运行使用嵌入式servlet容器(并打包为可执行归档文件)的Spring Boot应用程序时,JSP支持存在一些限制。

对于Tomcat,如果您使用war打包,它应该可以工作,即可执行的war将可以工作,并且还可以部署到标准容器(不限于但包括Tomcat)。由于Tomcat中采用了硬编码的文件模式,因此可执行的jar将无法工作。 Jetty当前不可用作JSP的嵌入式容器。 Undertow不支持JSP。

There is a JSP sample,以便您了解如何进行设置。