我使用Spring Boot为AngularJS应用程序开发了一个REST API。我正在运行Java 8并在Ubuntu上部署到Tomcat 8,运行Oracle的JDK8。当我在Eclipse中运行时,或者如果我将应用程序作为JAR运行时,一切正常。如果我点击localhost:9000 / api我会得到如下输出:
{
"expenses" : {
"href" : "http://localhost:9000/api/expenses"
},
"expenseTypess" : {
"href" : "http://localhost:9000/api/expensetypes"
},
....
}
如果我将应用程序打包为WAR并将其部署在/ myapplication的Tomcat上,则会在应用程序root之后丢失尾部斜杠。致电192.168.1.170:8080/myapplication/api返回:
{
"expenses" : {
"href" : "http://192.168.1.170:8080/myapplicationapi/expenses"
},
"expenseTypess" : {
"href" : "http://192.168.1.170:8080/myapplicationapi/expensetypes"
},
....
}
...这显然导致一切都爆炸,因为没有任何API链接是正确的。如果我手动调用正确的URI,则返回的资源也会损坏链接。
有没有人见过这个并克服它?
答案 0 :(得分:1)
嗯,答案很简单。如此简单,我忽略了甚至考虑它。我在application.properties中为API定义了一个基本URI:
spring.data.rest.base-uri=api
更改为:
spring.data.rest.base-uri=/api
解决了问题:/