2014-09-19 42 views
0

我正在從web-app/images讀取圖像,並使用不同的名稱在同一位置創建相同的副本。 Grails應用程序。在grails中讀取和寫入web應用程序中的圖像文件

我正在使用follwing代碼的文件的真實路徑,

def serveletContext = ServletContextHolder.servletContext 
    def filePath = serveletContext.getRealPath("web-app/images") 
    def actFile= new File(filePath+ "myimg.png") 
    final BufferedImage image = ImageIO.read(actFile) 

這是我商發展環境工作的罰款。讀寫都很好。 當我在Tomcat中部署應用程序的WAR,我發現了異常

java.lang.reflect.UndeclaredThrowableException在 自舉$ _closure1.doCall(BootStrap.groovy中:39)在 grails.util。 Environment.evaluateEnvironmentSpecificBlock(Environment.java:308) 在 grails.util.Environment.executeForEnvironment(Environment.java:301) 在 grails.util.Environment.executeForCurrentEnvironment(Environment.java:277) 在 java.util中.concurrent.Executors $ RunnableAdapter.call(Executors.java:471) at java.util.c oncurrent.FutureTask.run(FutureTask.java:262)在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615 ) at java.lang.Thread.run(Thread.java:745)引起: javax.imageio.IIOException:無法讀取輸入文件!

請告訴我如何解決這個問題。或者我可以通過使用相對路徑來代替真實路徑嗎?

+0

你有沒有檢查過任何與權限相關的問題?如果服務器是Linux? – danielad 2014-09-19 14:07:46

回答

0

如果你在本地測試它,如果正在工作。這可能是由於服務器問題與權限設置有關。

請檢查tomcat的的許可的webapps目錄至少確保它讀取和寫入到755

chmod u+x/755 webapps

如果沒有請添加更多的代碼,檢查你的錯誤,,,如果您還使用過其他插件?

0

請注意,您需要將其部署爲解壓縮的戰爭,否則getRealPath將在Tomcat上返回null。在conf目錄下,查看server.xml中的unpackWARs屬性。

<Host name="localhost" appBase="webapps" 
     unpackWARs="true" autoDeploy="false"> 
相關問題