我在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天内一直在尝试阅读这些方法,但发现的问题很少解决我的问题。
答案 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