Eu tenho um webapp tomcat que gera uma miniatura de uma imagem e deseja salvá-la em um local gravável (chmod 777). Mas por algum motivo sempre recebo java.nio.file.FileSystemException
erros e escrever essa imagem não é possível.
Funciona no meu computador local (executando o webapp no intellij), mas não no meu servidor azure ubuntu 18.04 vm. Posso criar um arquivo nesse diretório a partir do terminal como qualquer usuário.
java.nio.file.FileSystemException: /var/www/html/static/avatars/8SZK9w.jpg: Read-only file system
Jun 25 17:07:17 ubu18 tomcat9[103802]: at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100) ~[na:na]
Jun 25 17:07:17 ubu18 tomcat9[103802]: at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[na:na]
Jun 25 17:07:17 ubu18 tomcat9[103802]: at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) ~[na:na]
Jun 25 17:07:17 ubu18 tomcat9[103802]: at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:215) ~[na:na]
Jun 25 17:07:17 ubu18 tomcat9[103802]: at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:478) ~[na:na]
Jun 25 17:07:17 ubu18 tomcat9[103802]: at java.base/java.nio.file.Files.newOutputStream(Files.java:219) ~[na:na]
Jun 25 17:07:17 ubu18 tomcat9[103802]: at java.base/java.nio.file.Files.write(Files.java:3487) ~[na:na]
...
Eu tentei muitas coisas, como alterar a propriedade da pasta, chmod 777, alterar o caminho para /tmp (disparando uma FileNotFoundException), usando um código java diferente para escrever um arquivo. Eu também desativei o apparmor.
Alguma dica sobre o que está causando isso?
Este problema está relacionado ao sandboxing Debian do tomcat. Uma solução foi descrita aqui:
https://stackoverflow.com/questions/56827735/how-to-allow-tomcat-war-app-to-write-in-folder