我正在尝试在此springboot tutorial之后上传基本的RESTful API。基本上,我有一个端点/greeting
,它返回一个json {"id":1,"content":"Hello, World!"}
。这是代码中的请求:
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
当我在本地服务器上运行时,这完全正常,但是当我上传到我的Azure App Service时失败。我不确定哪里出了问题,可以使用一些帮助。
我正在使用Eclipse和Azure工具包,我正在使用maven项目。我通过右键单击项目发布到Azure - > Azure - >发布为Azure Web App。
当发布完成并且我尝试转到Azure服务器上的/greeting
端点时,出现404错误。如果我包含一个空白的html页面,我从Postman得到的响应只是html文件的内容,而不是我想要返回的json。
我的预期结果是让json回来,我可以使用一些建议。
答案 0 :(得分:1)
我刚从您提到的springboot tutorial下载了示例代码,并尝试将其部署到我的Azure应用服务中。它对我有用。
请参阅我的步骤并检查您是否错过了某些内容。
步骤1:使用mvn package
来构建pom.xml文件所在目录中的JAR
包。 (这是E:\Downloads\gs-rest-service-master\gs-rest-service-master\complete
对我来说)
第2步:然后您可以在JAR
文件夹中看到target
包。
使用wwwroot/
文件将其部署到KUDU上的根web.config
。
<强> 的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\gs-rest-service-0.1.0.jar"">
</httpPlatform>
</system.webServer>
</configuration>
请确保jar
中配置的web.config
包名称与上传的jar包名称相同!
第3步:请确保ApplicationSettings
与您的项目匹配,例如jdk version,tomcat version
。
第4步:重新启动您的应用服务并访问网址:
https://<your app name>.azurewebsites.net/greeting
希望它对你有所帮助。