【问题标题】:Read and Write Image file inside web-app in grails在 grails 中的 web-app 中读取和写入图像文件
【发布时间】: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?

标签: java grails


【解决方案1】:

如果您在本地对其进行了测试并且是否可以正常工作。可能是与权限设置相关的服务器问题。

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

chmod u+x / 755 webapps

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

【讨论】:

    【解决方案2】:

    请注意,您需要部署为未打包的战争,否则 getRealPath 在 Tomcat 上返回 null。在 conf 目录下查看 server.xml 的 unpackWARs 属性。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2020-04-16
      • 2015-09-29
      相关资源
      最近更新 更多