sensorweb-server-helgoland icon indicating copy to clipboard operation
sensorweb-server-helgoland copied to clipboard

Binary file output (pdf|png) could not be created because temp folder is not writable

Open EHJ-52n opened this issue 10 years ago • 3 comments

I use the TS-API in combination with an SOS (see EHJ-52n/sos-uol), When requesting binary output with .../sos/api/v1/timeseries/2/getData.png?timespan=2014-02-17T09:56:56/2014-02-17T10:12:15 I get a black screen with an error message telling me that my browser can not display the image because it contains errors. The server log from this request:

2014-04-07 09:20:43,872 ERROR [http-bio-8080-exec-1] [BaseController.java:111] An exception occured.
org.n52.web.InternalServerException: Could not write binary to stream.
        at org.n52.web.v1.ctrl.TimeseriesDataController.handleBinaryResponse(TimeseriesDataController.java:284) ~[timeseries-web-1.1.0.jar:na]
        at org.n52.web.v1.ctrl.TimeseriesDataController.getTimeseriesChart(TimeseriesDataController.java:224) ~[timeseries-web-1.1.0.jar:na]
[...]
        at java.lang.Thread.run(Thread.java:722) [na:1.7.0_21]
Caused by: org.n52.io.IoParseException: Could not write image to output stream.
        at org.n52.io.img.ChartRenderer.encodeAndWriteTo(ChartRenderer.java:115) ~[timeseries-io-1.1.0.jar:na]
        at org.n52.web.v1.ctrl.TimeseriesDataController.handleBinaryResponse(TimeseriesDataController.java:277) ~[timeseries-web-1.1.0.jar:na]
        ... 72 common frames omitted
Caused by: javax.imageio.IIOException: Can't create output stream!
        at javax.imageio.ImageIO.write(ImageIO.java:1574) ~[na:1.7.0_21]
        at org.n52.io.img.ChartRenderer.encodeAndWriteTo(ChartRenderer.java:112) ~[timeseries-io-1.1.0.jar:na]
        ... 73 common frames omitted
Caused by: javax.imageio.IIOException: Can't create cache file!
        at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:423) ~[na:1.7.0_21]
        at javax.imageio.ImageIO.write(ImageIO.java:1572) ~[na:1.7.0_21]
        ... 74 common frames omitted
Caused by: java.nio.file.AccessDeniedException: /opt/tomcat/temp/imageio8595928830467849206.tmp
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) ~[na:1.7.0_21]
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) ~[na:1.7.0_21]
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) ~[na:1.7.0_21]
[...]
        at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:419) ~[na:1.7.0_21]
        ... 75 common frames omitted

In my case, the real problem was that the tomcat7 user has no permissions to write to the tomcat default temp folder located in TOMCAT_HOME/temp.

EHJ-52n avatar Apr 07 '14 12:04 EHJ-52n