【发布时间】:2022-01-13 00:52:35
【问题描述】:
我是 Azure WebApps 的新手,我需要一些帮助。
我已经使用 Linux OS、Java 8 和 Tomcat 9 创建了一个 Azure WebApp。我正在尝试部署在 Lucee 上运行的 Mura 应用程序。
从这个在 Windows 上完成的示例 Mura CMS on Azure WebApps 中获取一些信息,我创建了一个包含 Mura 代码的 ROOT.war 和一个包含 web.xml 和 lucee.jar 的 WEB-INF 文件夹。
我现在正在尝试部署 war 文件,但它似乎不起作用。
我已经将 .war 文件通过 FTP 传送到 /home/site/wwwroot/webapps/ 并且上面的来源神奇地暗示了 war 文件将被解包,不确定这是否是 Windows 的事情?那没有发生。
我尝试了Deploy files to App Service 此处提到的许多不同选项,但似乎没有任何效果。
我在BASH 中尝试了以下操作并收到此错误无法从文件“/home/site/wwwroot/webapps/ROOT.war”中读取数据可能是因为在 BASH 中该路径不'不存在。
curl -X POST -u <username> --data-binary @"/home/site/wwwroot/webapps/ROOT.war" https://<appname>.scm.azurewebsites.net/api/publish&type=war
与
curl -X POST -v -u <username> --data-binary @/home/site/wwwroot/webapps/ROOT.war https://<appname>.scm.azurewebsites.net/api/wardeploy
另一种选择是通过Powershell 重新调整与上述类似的错误来执行此操作找不到路径“/home/site/wwwroot/webapps/ROOT.war”的一部分。
Publish-AzWebapp -ResourceGroupName <groupName> -Name <appname> -ArchivePath /home/site/wwwroot/webapps/ROOT.war
我发现它是从storage account 部署的另一个示例。运行此程序会创建一个新文件 app.war,其中 /home/site/wwwroot
的字节数为零curl -X POST -u <username> https://<app-name>.scm.azurewebsites.net/api/publish -d '{"packageUri": "https://<storageName>.blob.core.windows.net/blob-container/ROOT.war?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3"}'
然后我用 FTP 建立了一个基本项目,上面提到的 WEB-INF 文件夹和一个简单的 index.cfm 页面,但是我得到一个 500 错误 Servlet.init() for servlet [CFMLServlet] throw exception
我不确定这是否应该适用于 Linux 操作系统、Java 8 和 Tomcat 9 设置,或者我是否应该放弃并在 Windows 机器上尝试一下。
任何指导将不胜感激。
【问题讨论】:
-
你能在本地成功运行应用吗?
-
抱歉没有看到您的评论。是的,应用程序在我的机器上运行良好,但它在 Windows VM 上。也就是说,我知道 Lucee 确实可以在 Linux 操作系统 (docs.lucee.org/guides/installing-lucee/installation-linux.html) 上运行,Lucee 在 Java 上的 Apache Tomcat 上运行。
-
您可以尝试使用 Windows 网络应用程序而不是 Linux 吗?检查这是否有帮助:docs.microsoft.com/en-us/archive/blogs/mihansen/…
-
使用 Windows 机器的问题是,目前您无法将存储挂载到它,因此我正在探索 Linux,因为相信它可以实现这一点。在设置>配置>路径映射>新天蓝色存储挂载下有一个选项。也就是说,我只是尝试在 Windows 机器上部署它,花了 10 分钟就成功了。
标签: java linux tomcat azure-web-app-service lucee