web-dev-qa-db-ja.com

java.nio.file.FileSystemException:読み取り専用ファイルシステム

画像からサムネイルを生成し、それを書き込み可能な場所(chmod 777)に保存したいTomcat Webアプリケーションがあります。しかし、何らかの理由で私は常にJava.nio.file.FileSystemExceptionエラーとその画像の書き込みはできません。

私のローカルコンピューター(intellijでwebappを実行)では機能しますが、Azure ubuntu 18.04サーバーvmでは機能しません。ターミナルから任意のユーザーとしてそのディレクトリにファイルを作成できます。

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

フォルダーの所有権の変更、chmod 777、パスの/ tmpへの変更(代わりにFileNotFoundExceptionのトリガー)、ファイルの書き込みに別のJavaコードを使用)など、多くのことを試しました。装甲を無効にしました。

これを引き起こしているものについて何かアドバイスはありますか?

2
EarthMind

この問題は、TomcatのDebianサンドボックス化に関連しています。解決策はここで説明されています:

https://stackoverflow.com/questions/56827735/how-to-allow-Tomcat-war-app-to-write-in-folder

1
EarthMind