簡體   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