当前位置: 首页 > 知识库问答 >
问题:

无法将Spring Boot应用程序部署到Azure

谷梁迪
2023-03-14

我无法让我的Spring Boot站点在Azure Web实例上响应。我遵循了Java应用程序说明和上传说明。IIS服务器似乎正在接收请求,但战争中的servlet没有响应。根据留档,有几个问题。特别是,web.config应该部署到www root,并指定java路径和转发端口。我相信我已经涵盖了这些基础——我的web.config贴在下面。

我确实尝试过从市场上部署tomcat服务器,效果很好。当我替换我的war文件和网络时。配置,spring boot应用程序不工作。

一条有趣的信息是,HTTP_PLATFORM_PORT环境变量似乎没有定义。

应用程序设置:

Azure控制台信息(Env变量和Web.config):

D:\home\site\wwwroot

> dir
D:\home\site\wwwroot
Volume in drive D is Windows
 Volume Serial Number is 789E-197B

 Directory of D:\home\site\wwwroot

03/01/2016  02:14 AM    <DIR>          .
03/01/2016  02:14 AM    <DIR>          ..
02/29/2016  08:15 PM    <DIR>          bin
03/01/2016  01:49 AM         8,771,899 web-0.0.1-SNAPSHOT.war
03/01/2016  02:10 AM               496 web.config
03/01/2016  02:08 AM               496 web.custom.config
03/01/2016  01:54 AM             4,868 web.tomcat.config
03/01/2016  02:14 AM    <DIR>          webapps



> echo %java_home%
D:\home\site\wwwroot
D:\Program Files\Java\jdk1.8.0_60


> echo %http_platform_port%
D:\home\site\wwwroot
%http_platform_port%


> cat web.config
D:\home\site\wwwroot
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="%JAVA_HOME%\bin\java.exe"
        arguments="-Djava.net.preferIPv4Stack=true -Dserver.port=%HTTP_PLATFORM_PORT% -jar &quot;%HOME%\site\wwwroot\web-0.0.1-SNAPSHOT.war&quot;">
    </httpPlatform>
  </system.webServer>
</configuration>

共有3个答案

卢恩
2023-03-14

根据我的经验,在Azure上部署Spring Boot应用程序的简单方法是创建一个包含tomcat的webapp,并参考Spring Official文档如何创建一个可部署的war文件来创建war文件,然后通过FTP或Kudu控制台将其部署到路径wwwroot\webapps

如果你有一个现有的Spring Boot Jar应用程序,可以参考另一个Spring文档将Spring Boot JAR应用程序转换为WAR,将jar文件转换为war文件,然后简单地将其部署在Azure WebApp上。

您的情况与部署到Tomcat的SO线程Spring Boot War类似。

唐威
2023-03-14

我的2美分,希望这能帮助人们不要浪费几个小时的时间。我试图将一个Spring启动REST服务部署到Azure应用编程接口应用实例,并通过Kudo接口这样做。

我正在将WAR文件部署到应用编程接口应用服务。应用编程接口应用服务是使用Azure门户创建的,所有应用程序设置都保留为默认值。除了设置Java版本和Web容器之外,没有更改其他设置。

我从eclipse中的maven项目编译了一个war文件,然后将其重命名为ROOT. war。使用Kudo控制台,我将war文件放在webapps文件夹下。请注意,我删除了 /webapps/ROOT/文件夹的内容。我不需要添加web.config文件。我拖动了war文件并html" target="_blank">上传了它。但是,如果你把它拖到“蓝色框”上,它会解压war文件,这导致服务失败。

如果将war文件放在蓝色框以外的其他位置,则该文件不会解压缩。

然后我重新启动了服务,等了一分钟,然后就可以通过Azure url访问它了。

阮梓
2023-03-14

这不应该是一个可执行的JAR而不是一场战争吗?您可以在只安装JDK 8的情况下运行Spring BootJAR,但您需要一个JavaEE应用服务器来部署WAR。

我不知道web.config文件是什么;我使用云铸造。我只需要一个JAR,一个用于配置的. yml文件和一个JDK。Spring Boot JAR应该包含整个应用程序及其依赖项。我使用Maven创建胖JAR。

 类似资料:
  • 完成干净的构建后,我将war文件复制到Tomcat的文件夹中。但是部署会发生两次,并且在上下文已经存在的情况下以异常结束。我错过了什么? 非常感谢您的帮助。

  • 嘿,我已经尝试了几天了,我已经遍历了文档,我遵循了教程,当我试图将react应用程序部署到github页面时,我无法通过npm运行部署。我将npm称为运行构建,我将正确的url放置到package.json作为“主页”,我再次调用它并获得“部署”和“预部署”,我在节点模块中肯定有gh-pages,我的意思是我得到了所有我遵循的每一个步骤,每个教程都可以告诉我。我遇到了一个问题,内容如下: 错误:无

  • 我正在尝试向EB部署一个测试应用程序。我遇到了一个问题。我遵循了本教程:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/dotnet-linux-core-tutorial.html 当我上传测试应用程序时,它无法启动/var/log/eb引擎。日志说 2022/02/07 21:59:18.585543[ERROR]执行命令[app部

  • 问题内容: 我正在尝试在Heroku上使用Flask开发我的第一个“大型”应用程序,并尝试将此处的基本教程与以下说明结合:https : //devcenter.heroku.com/articles/python与以下说明:http:// flask.pocoo.org/docs/patterns/packages/#larger- applications。它在本地与“先行启动”一起工作,但是

  • 在开发阶段,我一直在开发tomcat的应用程序。随着我们的前进,我的客户希望部署到webphere。我正试图在webphere 8.5上这样做,但出于某种原因,我似乎遇到了问题。Tomcat很容易,我只是在战争中倒下,一切都像它应该的那样工作。Webphere是一个不同的故事。当我尝试点击我的应用程序时,我总是会遇到以下错误: 我一直在做一些研究,除了下面的一行,我没有注意到日志中有任何奇怪的地方

  • 我想部署两个应用程序foo。war和条形图。war到同一个Tomcat实例。他们是否可以侦听不同端口上的连接,例如,foo侦听端口81,bar侦听端口82?如果是,我如何配置?我意识到应用程序没有必要监听不同的端口,但这正是我想要实现的。 此外,如果我将重命名为,使其在根上下文中运行,那么对该Tomcat实例的所有请求都将由foo应用程序处理,因此bar必须部署到单独的Tomcat实例,这是否正确