- 締切済み
ファイルの書き込みができない
初心者であまりうまく説明できるか不安ですが、質問させて頂きたいと思います。 現在、さくらVPSをレンタルし、CentOS7にApache-Tomcat-9.0.64をインストールし、色々といじっています。 JavaServletでセッションスコープを使って、ホームページの入力フォームからの問い合わせ内容を受け取り、間違いないか入力者が確認後、送信ボタンを押してもらうと同時に、受付完了の表示と、受付内容のログを、コンテキストルート直下のフォルダ(inquiryLog)テキストファイル(inquirylog.txt)に書き込むようにコードを作成しています。 添付のファイルのtry文の中のコードがファイルへの書き込み用のものです。 コンパイルは問題なく通り、入力フォームへの入力から入力内容の確認、修正があれば修正、受付完了通知の表示など問題なくいくのですが、ファイルへの書き込みだけが実行されません。 自分のパソコン(Windows11)に同バージョンのTomcatをインストールして実行した場合問題なく、書き込みまで行われるのですが、そのWEBアプリケーションをそのままVPSというかCentOSに移して実行すると書き込みだけが行われなくなります。 ディレクトリーの指定の問題かと色々と書き方を変えて試しているのですが、うまくいきません。大変お手数ですが、もし分かる方がおられましたら、ご教示頂けないでしょうか。拙い表現ばかりで申し訳ございませんが、何卒よろしくお願い致します。 ※なお、添付のファイルは(コンテキストルート/WEB-INF/classes)の中にあります。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- AsarKingChang
- ベストアンサー率46% (3467/7474)
あれ、ログ見てたんですが、 質問者さんが作ったアプリって、 今開始されてます?そもそも。。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
動いたんですね!ひとまずはよかった! それで、 Javaのログ出力系関数と 実際の書き込みなどは、何らかのDatabaseってスタイルが多いので、 案外後半、この件どうでもいいと感じるはずなんですよね。 こっちの、遊び風景(笑)こちらでは、 こんなことして遊んでますよ!たった今^^
補足
ログでこんな遊びができるんですね。こういうの気楽にできるようになりたいです! 当該ファイルの書き込みについては、 動きはしているんですが、目的のファイル書き込みはやはりできないようです。。 「classes」にあるJavaServletからWEB-INF外にファイルの書き込みを行いたいのですが、うまくいかないようです。エラーも特に出ていないように見えます。。。書き込みができない以外は、入力フォームの動作は問題ないんですがね。。。 【コンテキストルート】----【WEB-INF】---【classes】--JavaServlet(controller) ちなみに、やはり、自分のパソコン(Windows)で使っているTomcatではちゃんと希望通りの書き込みができてますね。。。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
パーミッション絡みな気がしますが。 または、SELINUX。 ひとまず、CATALINAのエラーログはどうなってますか? デフォルトの場所は、 /var/log/tomcat こちらも、今JAVAやってるのですが、こちらはSpring使ってるので、 ちょいフレームワークが違うのですが、わかる範囲であれば 協力できるかと思います。
補足
さっそくご相談受けて頂き、有り難うございます。/var/log/の中にtomcatのディレクトリがなく、/opt/apache-tomcat-9.0.64/logs/の中にあるcatalina.outとcatalina.2022-07-20.logを確認してみました。一見してそれらしいものが見られず、且つ、入力フォームからの流れを実行してみても(入力フォームからの画面遷移は問題なく終了。ファイルへの書き込みはやはりされず)、どちらのログも更新されないようです。 切り分けのつもりで、コンテキストルート直下(WEB-INF)に単純な、PrintWriterを使ったファイルへの書き込みを行うjavaファイルを作成、コンパイルして実行したところ、これは問題なくファイルへの書き込みが行われました。。。 ー-- import java.io.PrintWriter; import java.io.FileNotFoundException; public class Test{ public static void main(String[] args){ try{ PrintWriter pw = new PrintWriter("inquiryLog/test.txt"); pw.write("test"); pw.close(); }catch(FileNotFoundException e){ System.out.println("nothign"); } } } ちなみに、catalina.outとcatalina.2022-07-20.logで確認できたログは以下のようなものばかりでした。お手数をおかけし、恐縮ですが、何か試せるようなことがあればご教示頂けると幸いです。 20-Jul-2022 18:38:05.849 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/apache-tomcat-9.0.64 20-Jul-2022 18:38:05.849 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/apache-tomcat-9.0.64 20-Jul-2022 18:38:05.849 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/apache-tomcat-9.0.64/temp 20-Jul-2022 18:38:05.851 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib] 20-Jul-2022 18:38:06.231 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-0.0.0.0-8009"] 20-Jul-2022 18:38:06.252 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [596] milliseconds 20-Jul-2022 18:38:06.281 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 20-Jul-2022 18:38:06.281 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.64] 20-Jul-2022 18:38:06.296 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.64/webapps/manager] 20-Jul-2022 18:38:06.594 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.64/webapps/manager] has finished in [298] ms 20-Jul-2022 18:38:06.595 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.64/webapps/docs] 20-Jul-2022 18:38:06.609 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.64/webapps/docs] has finished in [14] ms 20-Jul-2022 18:38:06.609 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.64/webapps/ROOT] 20-Jul-2022 18:38:06.626 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.64/webapps/ROOT] has finished in [17] ms 20-Jul-2022 18:38:06.626 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.64/webapps/home] 20-Jul-2022 18:38:06.659 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.64/webapps/home] has finished in [33] ms 20-Jul-2022 18:38:06.659 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.64/webapps/host-manager] 20-Jul-2022 18:38:06.679 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.64/webapps/host-manager] has finished in [20] ms 20-Jul-2022 18:38:06.679 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application direc
補足
今はパソコンを離れなければいけなくなったので停止しました。停止しています。 最後に動かしていたのが、8時半くらいで、その時に取ったログが以下です。 20-Jul-2022 19:11:50.468 INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance. 20-Jul-2022 19:11:50.471 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-0.0.0.0-8009"] 20-Jul-2022 19:11:50.478 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina] 20-Jul-2022 20:24:51.888 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.64 20-Jul-2022 20:24:51.896 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jun 2 2022 19:08:46 UTC 20-Jul-2022 20:24:51.896 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.64.0 20-Jul-2022 20:24:51.896 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 20-Jul-2022 20:24:51.896 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-1160.31.1.el7.x86_64 20-Jul-2022 20:24:51.896 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 20-Jul-2022 20:24:51.896 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64/jre 20-Jul-2022 20:24:51.896 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_332-b09 20-Jul-2022 20:24:51.897 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Red Hat, Inc. 20-Jul-2022 20:24:51.897 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /opt/apache-tomcat-9.0.64 20-Jul-2022 20:24:51.897 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /opt/apache-tomcat-9.0.64 20-Jul-2022 20:24:51.903 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/opt/apache-tomcat-9.0.64/conf/logging.properties 20-Jul-2022 20:24:51.903 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 20-Jul-2022 20:24:51.904 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 20-Jul-2022 20:24:51.904 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 20-Jul-2022 20:24:51.904 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 20-Jul-2022 20:24:51.904 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs= 20-Jul-2022 20:24:51.904 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/apache-tomcat-9.0.64 20-Jul-2022 20:24:51.904 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/apache-tomcat-9.0.64 20-Jul-2022 20:24:51.904 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/apache-tomcat-9.0.64/temp 20-Jul-2022 20:24:51.907 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib] 20-Jul-2022 20:24:52.409 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-0.0.0.0-8009"] 20-Jul-2022 20:24:52.451 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [908] milliseconds 20-Jul-20