【发布时间】:2014-10-16 18:46:44
【问题描述】:
我在 tomcat(/var/lib/tomcat7/webapps 文件夹)上部署了一个 war 文件,例如 rest-api-webapp-0.0.1.war
为了访问在这场战争中暴露的其余端点 check,我使用 curl 格式
curl -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "remarks=Tester" https://localhost:8080/rest-api-webapp-0.0.1/check
我面临的问题是,每当我升级我的 web 应用程序的补丁/主要/次要版本时,我都需要适当地更改 curl(比如说现在的版本是 0.1.4,那么 curl 必须更改为curl -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "remarks=Tester" https://localhost:8080/rest-api-webapp-0.1.4/check。我不希望更改客户端调用端点的方式(因为它需要客户端升级他们的应用程序,他们认为这是高维护的)可以通过这样做来避免这种情况
在 /var/log/tomcat7/webapps 文件夹中创建如下符号链接 ln -s rest-api-webapp-0.0.1.war rest-api
这样当我升级版本时,我只需将符号链接更改为指向新版本,客户端不需要做任何事情来使用新版本的 api。
实际上,我需要修复 api 端点,而不是在我在服务器上更新版本时更改。
对于 Ex:我需要将端点固定为 https:gva.atr.in/colouring-api/check 并且每当我对控制器进行重大更改时,我需要做的只是更新符号链接并不改变端点。
如果您发现这种方法有缺陷,请告诉我正确的方向,因为我在过去 2 天中一直在尝试阅读此内容,但发现解决我问题的文章非常少。
【问题讨论】:
-
阅读有关 servlet (URI) 映射和配置的 tomcat 文档
-
谢谢@mschenk74。我确实阅读了文档并了解我需要做些什么才能获得所需的解决方案。
标签: java tomcat7 war versioning endpoint