我在获取 Spring 启动 API 以在 Azure 应用服务上运行时遇到问题。我一直在 https://learn.microsoft.com/en-us/java/azure/spring-framework/deploy-spring-boot-java-web-app-on-azure 上遵循微软指南,但到目前为止还没有运气。
应用程序确实启动了(我可以在日志文件中看到应用程序启动),但是对应用程序服务url的http请求总是超时。
我读过 Azure 应用服务只拾取在端口 80 或 8080 上运行的嵌入式雄猫服务器,但也没有运气。
该应用程序部署在www根目录和适当的web中。config也已部署。
我尝试过在有或没有应用程序服务器的情况下运行应用程序服务(Tomcat和Jetty,这是不需要的,因为服务器嵌入在应用程序中),但两种方法都失败了。
我是否缺少其他配置部分?或者这可能与我在azure上使用的计划类型有关?也许资源有问题?
有什么指示吗?
感谢
伯特
结合官方教程中的步骤和您的实际情况,我提供以下检查点:
要点1:请使用mvn包
在pom所在的目录中构建JAR包。找到xml
文件。
第2点:请确保web.config中配置的jar包名称与上传的jar包名称相同。
web.config
<?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 "%HOME%\site\wwwroot\<your project name>"">
</httpPlatform>
</system.webServer>
</configuration>
要点 3:请使用 FTP 将 jar 文件
和 web.config
发布到 KUDU 上的 D:\home\site\wwwroot\
目录。
第4点:请确保< code>ApplicationSettings与您的项目相匹配,例如< code>jdk版本、< code>tomcat版本。
如果要部署war
文件,需要在Azure门户上配置应用程序服务的ApplicationSettings,然后将war文件上载到路径D:\home\site\wwwroot\webapps
。
此外,您可以检查KUDU上的日志文件:https://
作为参考,请参阅下面的文档和线程。
1.在Azure应用服务中配置web应用
2.在Azure应用服务中创建JavaWeb应用
3.将Springboot部署到Azure应用服务。
希望对你有帮助。
为了让Springboot应用程序运行,您需要上传JAR文件并添加web。配置文件。
要将您尝试运行的内容传达给服务,您需要将web.config文件添加到应用程序服务的site\wwwroot文件夹中。因为您已经创建了web.config文件,所以使用Maven添加以下内容,并获得一个动态包含在包中的项目/发布。
<build>
<resources>
<resource>
<directory>${project.basedir}/wwwroot</directory>
<filtering>true</filtering>
<targetPath>${basedir}/target</targetPath>
</resource>
</resources>
</build>
现在放置jar文件和web。配置。
您只需检查一次是否创建了web.config文件,如下所示,
<?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 "%HOME%\site\wwwroot\@project.artifactId@-@project.version@.jar"">
</httpPlatform>
</system.webServer>
</configuration>
请使用Spring和azure社区给出的以下步骤在azure上部署Spring启动应用程序:
1)进入您有pom文件的应用程序文件夹并运行
确保以下插件应位于 POM 文件中
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>gs-spring-boot</artifactId>
<version>0.1.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- tag::actuator[] -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- end::actuator[] -->
<!-- tag::tests[] -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- end::tests[] -->
</dependencies>
<properties>
<java.version>1.8</java.version>
<maven.build.timestamp.format>yyyyMMddHHmmssSSS</maven.build.timestamp.format>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>0.1.5</version>
<configuration>
<authentication>
<serverId>azure-auth</serverId>
</authentication>
<resourceGroup>maven-plugin</resourceGroup>
<appName>maven-web-app-${maven.build.timestamp}</appName>
<region>westus</region>
<javaVersion>1.8</javaVersion>
<deploymentType>ftp</deploymentType>
<stopAppDuringDeployment>true</stopAppDuringDeployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<targetPath>/</targetPath>
<includes>
<include>*.jar</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}</directory>
<targetPath>/</targetPath>
<includes>
<include>web.config</include>
</includes>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
</project>
注意:确保您已在azure上创建了与
maven-web-app-${maven.build.timestamp}同名的Web应用程序
现在在根上创建名为“web.config”的文件,并在web.comfig中添加你的jar
<?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 "%HOME%\site\wwwroot\azure-rest-example-app-0.1.0.jar"">
</httpPlatform>
</system.webServer>
</configuration>
确保应用程序在本地正常工作。
现在,如果您有多个帐户与您的id关联,请使用以下命令
>
az登录
az帐户列表
az账户集-订阅XXX-XXX-XXX-XXXXXXXXXXXX
现在,您需要创建“Microsoft Azure 中的服务主体”
1) 打开终端窗口。
2) 通过键入 az login 使用 Azure CLI 登录到你的 Azure 帐户
3)通过键入az ad sp Create-for-RBAC-name " vaquarkhan "-password " yourpassword "创建Azure服务主体(vaquarkhan是用户名,your password是服务主体的密码)。
az ad sp create-for-RBAC-name“app-name”-password“password”
注意:如果你得到错误需要改变设置-
" azure . graph RBAC . models . graph _ error。GraphErrorException:不允许来宾用户执行此操作。
如果成功
Azure应打印出类似于以下内容的JSON响应:
{
"appId": "XXX-XXXX-XXX-XXX-XXXX",
"displayName": "vaquarkhan",
"name": "http://vaquarkhan",
"password": "yourpassword",
"tenant": "YYY-YYYY-YYY-YYY-YYYY"
}
将Maven配置为使用Azure服务主体
1)在文本编辑器中打开Mavensettings.xml文件(通常可以在 /etc/maven/settings.xml或$HOME/. m2/settings.xml找到)。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers>
<server>
<id>azure-auth</id>
<configuration>
<client>ur key</client>
<tenant>ur tenant</tenant>
<key>YOUR PASSWORD</key>
<environment>AZURE</environment>
</configuration>
</server>
</servers>
<proxies/>
<profiles>
<profile>
<id>hwx</id>
<repositories>
<repository>
<id>hwx</id>
<name>hwx</name>
<url>http://nexus-private.hortonworks.com/nexus/content/groups/public/</url>
</repository>
</repositories>
</profile>
</profiles>
<mirrors>
<mirror>
<id>public</id>
<mirrorOf>*</mirrorOf>
<url>http://nexus-private.hortonworks.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<activeProfiles/>
</settings>
2)将本教程上一节中的Azure服务主体设置添加到settings.xml文件中的集合中,如下所示:
<servers>
<server>
<id>azure-auth</id>
<configuration>
<client>aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa</client>
<tenant>tttttttt-tttt-tttt-tttt-tttttttttttt</tenant>
<key>pppppppp</key>
<environment>AZURE</environment>
</configuration>
</server>
</servers>
3) 保存并关闭设置。xml文件。
构建应用并将其部署到Azure
1)运行以下命令
>
部署web应用后,请访问Azure门户进行管理。它将在App Services中列出。
单击应用程序。从那里,您的Web应用程序的面向公共的URL将在概述部分中列出
确定 Web 应用的 URL 您可以单击此链接访问 Spring Boot 应用程序并与之交互。
Azure maven插件文档
注意:网站名称必须是全球唯一的,它使用应用程序名称生成,请确保名称应该是唯一的。
我有个问题。我试图在WildFly服务器上部署一个应用程序。在尝试这样做时,我得到了一个错误,如下所示: 我搜索了一个解决方案,我找到了一个--我应该将jar添加到...但这无济于事!Wildfly正在尝试(当然没有任何努力)部署,但它失败了。然后我试图部署我的应用程序--同样的错误出现了:/ 干杯并感谢你事先给出的任何答案。
当我试图在带有Jenkins和maven的weblogic 12c集群上重新部署EAR时,总是会出现以下错误: 我已经添加了
Python 2.7 64bit Django 1.3 WAMP 2.2(Apache 2.2.22)64位 mod_wsgi3.4 64位 Windows 7 64bit 由Django的start项目生成。位于默认 /myapp/myapp/wsgi.py 鉴于上述上下文,无法在WAMP上部署Django应用程序。 “Hello World”测试wsgi应用程序运行良好,因此我已确认mod_w
我最近完成了我的第一个laravel站点,但现在我被部署卡住了。这对我来说是一个全新的概念。我的网络空间是由1 我尝试过几次教程,但似乎都不管用。基于此处的教程:将Laravel项目上载到Web服务器 我的服务器文件夹结构如下: (注意当第一次FTping我的服务器,没有www或html_docs,只有一个日志文件夹)。 在www上,我的索引。php更改为: 在laravel/引导/路径中。我更改
我尝试在weblogic服务器上部署使用Spring apache cxf的应用程序。我一直收到这条错误消息: javax。servlet。ServletException:Servlet类:org。阿帕奇。cxf。运输servlet。CXFServlet’不实现javax。servlet。weblogic上的Servlet。servlet。内部的StubSecurityHelper$Servle
当我试图将我的流星应用程序部署到Heroku时,它在引导时崩溃了。
TiCDC 是一款 TiDB 增量数据同步工具,本文介绍如何使用 TiDB Operator 在 Kubernetes 上部署 TiCDC。 前置条件 TiDB Operator 部署完成。 全新部署 TiDB 集群同时部署 TiCDC 参考 在标准 Kubernetes 上部署 TiDB 集群进行部署。 在现有 TiDB 集群上新增 TiCDC 组件 编辑 TidbCluster Custom
本文介绍如何在 Kubernetes 上部署 TiFlash。 前置条件 TiDB Operator 部署完成。 全新部署 TiDB 集群同时部署 TiFlash 参考 在标准 Kubernetes 上部署 TiDB 集群进行部署。 在现有 TiDB 集群上新增 TiFlash 组件 编辑 TidbCluster Custom Resource: kubectl edit tc ${cluster