我创建了一个节点js web app来生成报告。我的想法是使用.jasper文件(jasper报告)来生成这些报告。我尝试过一堆节点js库来做这件事,但似乎没什么用。最后我继续制作一个.jar文件(java)来解决这个问题。过程如下:
它在我的电脑中完美运行。然后我将其上传到Microsoft Azure。似乎run .jar文件步骤失败,因为没有创建pdf文件。任何人都可以帮助我或建议更好的方法吗?
答案 0 :(得分:0)
我怀疑您的Java PDF生成调用受App Service沙箱限制的API。大多数PDF呈现引擎都使用GDI +,其大部分功能受Azure App Service沙箱的限制。但是,此策略在专用服务器上放宽。扩展到专用服务器应解决此问题(即不是共享或免费SKU)。
答案 1 :(得分:0)
如果您将NodeJS Web应用程序部署到MS Azure WebApps中,则该过程的第2步无法生成用于运行jar可运行文件的子进程,因为Java运行时环境未包含您当前使用NodeJS的Azure WebApp。
有三种建议的方法可以做到这一点:
使用Azure VM安装NodeJS和Java,并在VM上部署应用程序,就像在本地计算机上一样。这是一种简单的方法。
我搜索了一个名为jsreport
的开源报告软件。它可以安装在MS Azure VM或Cloud Service上。您可以参考下载页面Run jar file with node js on Microsoft Azure进行安装。 NodeJS http://jsreport.net/learn/nodejs有jsreport sdk。如果要在Azure云服务上使用jsreport
,则需要了解如何在Azure云服务https://azure.microsoft.com/en-us/documentation/articles/cloud-services-nodejs-develop-deploy-express-app/上构建NodeJS应用程序。
更改您的流程。 NodeJS从用户处获取请求,并使用指定的文件名和路径发送给ServiceBus;修改为Azure WebJob的jar可运行文件从ServiceBus读取请求并生成具有给定文件名的pdf,并将其保存到Azure Blob存储上的给定文件路径; NodeJS直接从Blob存储区向用户返回pdf文件。
对于Azure WebJob&服务总线,您可以参考https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/和https://azure.microsoft.com/en-us/documentation/articles/service-bus-nodejs-how-to-use-queues/。