【发布时间】:2014-11-14 03:42:14
【问题描述】:
我正在从 web-app/images 读取图像,并在同一位置以不同的名称创建相同的副本。一个 Grails 应用程序。
我正在使用以下代码获取文件的真实路径,
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 在 BootStrap$_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) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745) 引起: javax.imageio.IIOException: 无法读取输入文件!
请告诉我如何解决这个问题。或者我可以通过使用相对路径而不是实际路径来做同样的事情?
【问题讨论】:
-
你检查过任何与权限相关的问题吗?如果服务器是 linux?