Java 在grails中读取和写入web应用中的图像文件
我正在从web应用程序/图像中读取图像,并在同一位置以不同的名称创建相同图像的副本。Grails应用程序 我正在使用以下代码获取文件的真实路径Java 在grails中读取和写入web应用中的图像文件,java,grails,Java,Grails,我正在从web应用程序/图像中读取图像,并在同一位置以不同的名称创建相同图像的副本。Grails应用程序 我正在使用以下代码获取文件的真实路径 def serveletContext = ServletContextHolder.servletContext def filePath = serveletContext.getRealPath( "web-app/images" ) def actFile= new File(filePath+ "myimg.png")
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$\u closure1.doCallBootStrap.groovy:39 at
grails.util.Environment.EvaluateEnvironment SpecificBlockEnvironment.java:308
在
grails.util.Environment.executeForEnvironmentEnvironment.java:301
在
grails.util.Environment.executeForCurrentEnvironmentEnvironment.java:277
在
java.util.concurrent.Executors$RunnableAdapter.callExecutors.java:471
在java.util.concurrent.FutureTask.runFutureTask.java:262处
java.util.concurrent.ThreadPoolExecutor.runWorkerThreadPoolExecutor.java:1145
在
java.util.concurrent.ThreadPoolExecutor$Worker.runThreadPoolExecutor.java:615
在java.lang.Thread.runThread.java:745处,由以下原因引起:
javax.imageio.IIOException:无法读取输入文件
请告诉我如何解决这个问题。或者我也可以通过使用相对路径而不是实际路径来做同样的事情?如果您在本地测试了它并且它正在工作。这可能是由于与权限设置相关的服务器问题造成的 请检查tomcat webapps目录上的权限,至少确保它可以读写到755 chmod u+x/755网络应用程序
如果没有,请添加更多代码,以检查您的bug,,,如果您还使用了任何其他插件?请注意,您需要作为未打包的war进行部署,否则getRealPath在Tomcat上返回null。在conf目录下,查看server.xml中的unpackars属性
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false">
您是否检查过任何与权限相关的问题?如果服务器是linux?