web-dev-qa-db-fra.com

java.nio.file.filesystemException: Système de fichiers en lecture seule

J'ai une webApp Tomcat qui génère une vignette à partir d'une image et souhaite l'enregistrer dans un emplacement inscriptible (CHMOD 777). Mais pour une raison quelconque, je reçois toujours Java.nio.file.FileSystemException erreurs et écrire cette image n'est pas possible.

Cela fonctionne sur mon ordinateur local (exécutant la webApp in Intellij), mais pas sur mon serveur Azure Ubuntu 18.04 serveur VM. Je peux créer un fichier dans ce répertoire à partir du terminal comme utilisateur.

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]
...

J'ai essayé de nombreuses choses comme la modification de la propriété du dossier, CHMOD 777, modifiant le chemin d'accès/TMP (déclenché une exception FilenotFoundException à la place), à ​​l'aide d'un fichier différent Java code pour écrire un fichier. Je handicapé Apparmor.

Des conseils sur ce qui cause cela?

3
EarthMind

Ce problème est lié à Debian Sandboxing of Tomcat. Une solution a été décrite ici:

https://stackoverflow.com/questions/56827735/how-to-ve-tomcat-war-app-a-write-inFolder

1
EarthMind