在grails中的web-app内读写图像文件

时间:2014-09-19 13:58:07

标签: java grails

我正在从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 at   BootStrap $ _closure1.doCall(BootStrap.groovy:39)at   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)at   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:无法读取输入文件!

请告诉我如何解决这个问题。或者我可以通过相对路径而不是真实路径来做同样的事情吗?

2 个答案:

答案 0 :(得分:0)

如果您在本地进行测试,并且是否有效。这可能是由于服务器问题与权限设置有关。

请检查tomcat webapps 目录的权限,至少确保其可读写为755。

chmod u+x / 755 webapps

如果没有,请添加更多代码,检查您的错误,,,如果您还使用过任何其他插件?

答案 1 :(得分:0)

请注意,您需要部署为解压缩的war,否则getRealPath会在Tomcat上返回null。在conf目录下,查看server.xml以获取unpackWARs属性。

<Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="false">