【问题标题】:Fixed Rest Endpoints固定休息端点
【发布时间】: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


【解决方案1】:

我阅读了 tomcat 文档并意识到我需要创建一个指向 war 文件的符号链接,并为符号文件赋予 war 扩展名。因此,如果这是您的 tomcat webapps 目录中的内容

/var/lib/tomcat7/webapps user1$ ls drwxr-xr-x 11 user1 wheel 374 Oct 19 21:52 . drwxr-xr-x 9 user1 admin 306 Oct 19 19:36 .. drwxr-xr-x 19 user1 wheel 646 Aug 29 20:19 ROOT drwxr-xr-x 55 user1 wheel 1870 Aug 29 20:19 docs drwxr-xr-x 4 user1 wheel 136 Oct 19 19:46 rest-api-webapp-0.2.1 -rw-r--r-- 1 user1 wheel 48258097 Oct 19 19:46 rest-api-webapp-0.2.1.war drwxr-xr-x 7 user1 wheel 238 Aug 29 20:19 host-manager drwxr-xr-x 8 user1 wheel 272 Aug 29 20:19 manager

这样做,

ln -s rest-api-webapp-0.2.1.war rest-api.war

让目录变成这样(等待tomcat引擎部署新​​战)

drwxr-xr-x 11 user1 wheel 374 Oct 19 21:52 . drwxr-xr-x 9 user1 admin 306 Oct 19 19:36 .. drwxr-xr-x 19 user1 wheel 646 Aug 29 20:19 ROOT drwxr-xr-x 4 user1 wheel 136 Oct 19 21:52 rest-api drwxr-xr-x 4 user1 wheel 136 Oct 19 19:46 rest-api-webapp-0.2.1 -rw-r--r-- 1 user1 wheel 48258097 Oct 19 19:46 rest-api-webapp-0.2.1.war lrwxr-xr-x 1 user1 wheel 25 Oct 19 21:51 rest-api.war -> rest-api-webapp-0.2.1.war drwxr-xr-x 7 user1 wheel 238 Aug 29 20:19 host-manager drwxr-xr-x 8 user1 wheel 272 Aug 29 20:19 manager

如果需要重新启动您的 tomcat,您可以像这样使用 curl 命令

curl -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "remarks=Tester" https://localhost:8080/rest-api/check

完全不用担心主要、次要、补丁版本。

有了新版本后,您只需

unlink rest-api
ln -s rest-api-webapp-X.Y.Z.war rest-api.war

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 2021-04-03
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    相关资源
    最近更新 更多