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 无法将Spring启动应用程序部署到Azure_Java_Azure_Spring Boot - Fatal编程技术网

Java 无法将Spring启动应用程序部署到Azure

Java 无法将Spring启动应用程序部署到Azure,java,azure,spring-boot,Java,Azure,Spring Boot,我无法让我的Spring启动站点在Azure Web实例上响应。我一直在跟踪这个和那个。IIS服务器似乎正在接收请求,但war中的servlet没有响应。根据文件,有几个陷阱。特别是,web.config应该部署到wwwroot,并指定java路径和转发端口。我相信我已经介绍了这些基础知识——我的web.config粘贴在下面 我确实尝试过从市场上部署tomcat服务器,效果很好。当我替换war文件和web.config时,spring boot应用程序无法工作 一条有趣的信息是HTTP_PLA

我无法让我的Spring启动站点在Azure Web实例上响应。我一直在跟踪这个和那个。IIS服务器似乎正在接收请求,但war中的servlet没有响应。根据文件,有几个陷阱。特别是,web.config应该部署到wwwroot,并指定java路径和转发端口。我相信我已经介绍了这些基础知识——我的web.config粘贴在下面

我确实尝试过从市场上部署tomcat服务器,效果很好。当我替换war文件和web.config时,spring boot应用程序无法工作

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

应用程序设置:

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>

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>
D:\home\site\wwwroot
>迪尔
D:\home\site\wwwroot
驱动器D中的卷是Windows
卷序列号为789E-197B
D:\home\site\wwwroot的目录
2016年1月3日凌晨2:14。
2016年01月03日02:14。。
2016年2月29日下午8:15
2016年01月03日01:49 AM 8771899 web-0.0.1-SNAPSHOT.war
2016年01月03日02:10 AM 496 web.config
2016年01月03日02:08 AM 496 web.custom.config
2016年01月03日01:54 AM 4868 web.tomcat.config
2016年01月03日02:14上午webapps
>回显%java\u home%
D:\home\site\wwwroot
D:\ProgramFiles\Java\jdk1.8.0\U 60
>回显%http\u平台\u端口%
D:\home\site\wwwroot
%http_平台_端口%
>cat web.config
D:\home\site\wwwroot

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

如果您有一个现有的SpringBootJAR应用程序,您可以参考另一个SpringDoc将Jar文件转换为war文件,然后简单地将其部署到Azure WebApp上


您的情况与SO线程类似。

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


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

我的朋友们,希望这能帮助一些人不要浪费生命中的几个小时。我试图将spring boot REST服务部署到Azure API应用程序实例,并通过Kudo接口实现了这一点

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

我从eclipse中的maven项目编译了一个War文件,然后将War文件重命名为ROOT.War。使用Kudo控制台,我将war文件放在webapps文件夹下。注意,我删除了/webapps/ROOT/文件夹的内容。我不必添加web.config文件。我拖拽了war文件并上传了它。但是,如果您将其拖到“蓝盒”上,它将解压缩war文件,这将导致服务失败

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


然后,我重新启动了服务,等待了一分钟,然后才能够通过Azure url访问它。

关键是“胖罐子”。“gradle build”就是这样。不起作用的Gradle命令:“Gradle jar”和“Gradle war”。再次感谢。在中,您有web.config和关于如何部署它的说明@达菲莫也许你想把它加到你的答案里。那不是我的答案。加上你自己的。我不使用Azure。嗨,对不起,你能帮我吗,我已将jar文件上载到/webapp文件夹,但没有任何更改。。我会错过一个角色吗?在哪里可以找到这个web.config文件??提前谢谢!正确的路径是site/wwwroot。使用从Azure门户中的Web应用配置的ftp凭据。这里解释了web.config:我的web.config与该页面上显示的springboot应用程序中的web.config基本相同。发生的事情是,您启动了一个运行jar的自定义Http模块。非常感谢!!还有一个问题,我不知道如何启动自定义Http模块,我是Azure和其他东西的新手,顺便说一句,我还有一个SpringBoot应用程序。。抱歉向您发送评论:(我将jar文件上传到/wwwroot,将
web.config
固定到同一个文件夹中,从azure portal重新启动
web应用程序
,然后当我试图访问网站时,它一直在加载,有时它会给我错误503..有任何Tomcat配置吗?我不明白..或者我必须切换到
.war …再次抱歉,我被困在那里了!正是这种经历让我写了这个问题。在我的例子中,我部署了一个“瘦罐子”。如果您使用的是gradle,则必须使用“gradle build”而不是“gradle jar”来构建java应用程序。您需要一个包含所有依赖项的jar。很好奇,您如何在spring boot属性中设置
server.port
,或者这不重要?在application.properties文件中:server.port=port\u number返回和回复的存储库:)我很惊讶azure文档中没有提到这个环境变量。我实际上将它强制设置为8080,并且似乎可以工作。我当然错了,这样的硬代码。你的回答让我认为我走的是正确的道路,在你的帮助下,我已经能够使
war
格式工作了。