2011-08-04 44 views
1

我遇到了使用Flying Saucer的Grails Pdf插件的問題。一切正常,直到我部署到運行Tomcat6的Ubuntu服務器上。然後在我的gsp中引用CSS和圖片失敗,儘管我仍然獲得了PDF渲染。Flying Saucer無法解析Ubuntu或tomcat6上的圖片或CSS

我已經嘗試了兩種不同的方法來建立PDF

ITextRenderer renderer = new ITextRenderer() 

renderer.setDocument(url) 
renderer.setDocumentFromString(content, baseUri) 

運行與'Grails的督促運行戰爭的作品,運行,沒有安全的虛擬應用程序的工作原理局部戰爭,但是當我部署失敗它也在服務器上。 (儘管我試圖渲染的任何內容都無法保證),但圖像的URL是正確的。 (我已經嘗試了絕對URL和相對URL)都沒有在PDF中呈現,但是如果您從瀏覽器請求這些資源,他們就在那裏。對未在服務器上託管的圖像的引用確實有效。

所有這一切讓我相信,當你做sudo apt-get install tomcat6配置爲有趣的tomcat6與Ubuntu的安裝。我知道它使用用戶'tocat6'而不是'root'來運行許多安裝。這可能會導致飛碟以某種方式沒有正確的訪問來獲取被引用的文件?

回答

1

由於除了images/css之外的所有東西都在工作,我猜你的baseURI不正確?!我在生產系統上有這個代碼,它正在工作。所有圖像均以absolut爲準:

renderer.setDocument(doc, request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()); 

您的baseURI設置爲?

+0

事實證明,這個問題最終是由一個奇怪的防火牆問題引起的。我的grailServerURL出去了,然後回來了,但是我的baseURI使用了不允許的鏡像服務器的本地網絡IP。長話短說它從來都不是飛碟或tomcat的問題。 – aeischeid