我有一个用java开发的应用程序。我已经将它导出到一个可执行jar,我想将它上传到azure,以便它以一定的时间表运行。到现在为止,我不可能知道它是如何完成的。我已经使用eclipse完成了一个Web服务,如果它很容易在azure中部署并使其工作但不可执行。有人能告诉我它是如何完成的吗?
听起来你想在Azure上运行带有时间触发器的可执行jar文件。简单的方法是将您的jar文件部署为Azure WebApp上的WebJob。以下是执行此操作的步骤。
.bat
的run.bat
文件,并按如下所示编写以下命令。
set JAVA_HOME=D:\Program Files (x86)\Java\jdk1.8.0_172
set CLASSPATH=.;%JAVA_HOME%\lib
set PATH=%JAVA_HOME%\bin;%PATH%
java -jar <your jar file name>.jar
run.bat
文件和jar文件压缩为zip文件,然后在Azure门户上使用Scheduled
触发器和CRON Expression
值进行部署。
然后,您可以在Azure门户上启动它,并通过Logs
按钮查看正在运行的日志。
注意:有关CRON Expression
或其他的更多信息,请参阅官方教程CRON expressions
的Run Background tasks with WebJobs in Azure App Service
部分。
根据您的描述,我认为您的项目缺少应该在web.config
路径部署的wwwroot
。
这是一个示例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\ROOT.jar"">
</httpPlatform>
</system.webServer>
</configuration>
并确保将您的jar文件上传到home\site\wwwroot\bin
文件夹。您可以参考这个文档的更多信息:Running java jar file to serve web requests on Azure App Service Web Apps。