繁体   English   中英

如何从Tomcat Web应用程序运行PhantomJS

[英]How to run PhantomJS from Tomcat web app

我正在尝试从在Linux(Ubuntu 13.04)上的Tomcat 7实例上运行的Grails应用程序中运行PhantomJS。

我确定PhantomJS已正确安装,因为我可以从命令行执行它。 我正在使用它来制作网页的屏幕截图( http://phantomjs.org/screen-capture.html )。

当我从命令行运行命令时,使用root用户可以很好地工作:

phantomjs /home/user/captureScreen.js "http://xx.xx.xx.xx/chart" "/home/user/07012014050636114.png"

我相信没有必要共享JS代码,因为它可以从命令行正常运行。

问题是,当我从Web应用程序(Grails)运行相同的命令时,它仅返回0值,这告诉我一切运行正常,但它没有创建PNG文件,也没有返回错误。

我是这样从Groovy调用命令的:

String path = "phantomjs pathToJs.... etc"
def process = path.execute()
process.waitForOrKil(5000) // This runs in 1 to 2 seconds in the command line
println process.exitValue()

我尝试将tomcat7用户的写许可权添加到JS文件和写图像的文件夹中,但仍然无法正常工作,但我仍然认为这与许可权有关

有什么想法吗?

谢谢!

至于命令执行,我们在Grails应用程序中遇到了有关纯字符串表示法的问题。 使用数组语法

   ["/usr/binphantom/js","/home/user/captureScreen.js","http://xx.xx.xx.xx/chart","‌​/home/user/07012014050636114.png"].execute()

使事情起作用。 我认为这与外壳扩展有关,外壳扩展在Groovy中如何处理字符串不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM