Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Azure应用程序服务上的Jetty部署是如何工作的?_Java_Azure_Deployment_Jetty_Azure Api Apps - Fatal编程技术网

Java Azure应用程序服务上的Jetty部署是如何工作的?

Java Azure应用程序服务上的Jetty部署是如何工作的?,java,azure,deployment,jetty,azure-api-apps,Java,Azure,Deployment,Jetty,Azure Api Apps,我有一个在Azure应用程序服务实例上运行的Java web应用程序。为了部署它,我使用了一个带有.war文件的Bitbucket repo。当我向这个repo提交一个新的.war文件时,它应该由服务自动部署。但是,通常情况下,我必须重新启动、重新部署,甚至通过FTP上传.war文件才能成功完成部署 我有一个Jetty实例驻留在此服务中,因此我的.war文件名为ROOT.war。好的,当上传到服务时(无论是通过Bitbucket还是FTP),这个.war文件应该未归档到同一个目录中,即/site

我有一个在Azure应用程序服务实例上运行的Java web应用程序。为了部署它,我使用了一个带有.war文件的Bitbucket repo。当我向这个repo提交一个新的.war文件时,它应该由服务自动部署。但是,通常情况下,我必须重新启动、重新部署,甚至通过FTP上传.war文件才能成功完成部署

我有一个Jetty实例驻留在此服务中,因此我的
.war
文件名为
ROOT.war
。好的,当上传到服务时(无论是通过Bitbucket还是FTP),这个.war文件应该未归档到同一个目录中,即
/site/wwwroot/webapps
。就我而言,这不会发生。web应用程序与单独位于
/site/wwwroot/webapps
中的
ROOT.war
文件一起工作。每隔一段时间,我就会在
/site/wwwroot/webapps
下找到一个
ROOT
文件夹,其中有两个默认文件
index.jsp
background.png
。我一点也不知道是什么原因导致
根目录
文件夹与这些默认文件一起出现。我唯一的线索是,在我更改了一个环境变量之后,它发生了几次

此外,在出现带有空服务器文件的
ROOT
文件夹后,我可以重新部署应用程序的唯一方法是通过FTP或门户中提供的控制台手动删除此
ROOT
文件夹,然后我的重新部署请求才能在我的web应用程序中成功


所以,如果还不够清楚,我的问题是这里发生了什么?我对我所面临的行为一无所知。我觉得我在盲目地使用这个Azure服务,当出现问题时无法修复任何东西。是否有任何资源可以解释部署web应用程序时在后台发生的情况?

因此,Azure API应用程序是PAAS,而不是IAAS服务。通过访问
yoursite.scm.azurewebsites.net
,您可以在CMD或Powershell中浏览文件系统,并可以查看正在运行的进程,从而访问PaaS平台。这可能会让人觉得你在一个虚拟机上,但事实并非如此。您在此处看到的数据将复制到您的API应用程序实例中。您可以通过缩放API应用程序来控制实例的数量

我经常看到您在部署时遇到的问题,然后ROOT是空的(在内部工作以查看此修复…)。 对我来说,最好的方法就是停止你的API应用程序,手动解压缩你的ROOT.war。将文件移动到/ROOT/,然后启动API应用程序

您可以简单地放置ROOT.war,并在重新打开时让系统解压它,但这有时会导致根目录为空,然后需要重新启动

所有这些让我转而使用Spring Boot。无需拆包。只需配置web.config并删除jar文件


我也有同样的问题。解决方案是在解除部署后调用端点

  • 停止Azure应用程序服务
  • 在/webapps文件夹中部署ROOT.war工件
  • 启动Azure应用程序服务
  • 调用应用程序服务的URL一次
  • 这四个步骤非常重要,开始您前面提到的流程(自动部署)


    我花了很多时间弄清楚问题出在哪里。

    你能在github上就此提出问题吗?我相信存储库可能是这样的:@ThiagoCustodio我实际上使用的是Azure Search REST API,所以我只是从我的应用程序发送请求,而不是使用Azure提供的任何库。@halileohalilei我的建议是尝试将完整的文件结构添加到BitBucket repo以部署你的应用程序,而不是
    webapps
    下的war文件,例如repo中的
    webapp//
    。@ThiagoCustodi这实际上是Azure API应用程序平台问题,而不是Azure sdk for java问题,可能应该在支持票证中提出。这个问题是众所周知的(我曾亲自与团队讨论过),但展示它对更多人的影响有助于提高优先级。