固定休息端点

时间:2014-10-16 18:46:44

标签: java tomcat7 war versioning endpoint

我在tomcat上部署了一个war文件(/ var / lib / tomcat7 / webapps文件夹),比如说,rest-api-webapp-0.0.1.war

要访问在此战争中暴露的其余端点检查,我使用格式的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

我遇到的问题是,每当我启动webapp的补丁/主要/次要版本时,我都需要适当地更改卷曲(比如版本现在为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天内一直在尝试阅读这些方法,但发现的问题很少解决我的问题。

1 个答案:

答案 0 :(得分:0)

我阅读了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