GroupSession
「java.lang.ClassCastException」が解消できないという質問を挙げていたものです。上記の件、OS:CentOS7.8Apache Tomcat 9.0.39AdoptOpenJDK11.0.9.1+1の環境で、・/etc/systemd/system/tomcat.serviceにて起動ユーザーをtomcatにしていると クライアントからGroupsessionを見ようとした時、上記のエラーが発生 この時、catalina.outの中に、/velocity.logに書き込めない、というエラー・/etc/systemd/system/tomcat.serviceにて起動ユーザーをrootにすると、 上記エラー、/velocity.log書き込みのエラーが発生せず、 クライアントからGroupsessionにAdminログインできた・# chown tomcat. /velocity.logを実行して、 /etc/systemd/system/tomcat.serviceにて起動ユーザーをtomcatに戻し、 サービス起動したところ、同じくエラー発生せず、 クライアントからGroupsessionにAdminログインできた。と、求めていることができるようになったと見えるのですが、これで正しいのか?と疑問に思っております。わざわざ、/velocity.logのオーナーを変えなければならないというのが不自然で、調べたところ、velocity.logは「カレントディレクトリに吐き出されるもの」と、http://java.akjava.com/library/jakarta-velocity/loghttps://lets-try-simo2.net/velocity-linux/といった処に書かれておりましたが、/に書き込もうとしてtomcatユーザーははねられてしまったようです。何か設定すべき項目があったのでしょうか。
Debianでも同じことが起こりましたが、おそらくtomcatユーザーのホームディレクトリが/になっているのではと思います。具体的な意図まではわかりませんが、何か理由があってそうなっているのでしょう。しかし、tomcatユーザーが/に書き込み権限を持つのはいいこととは思えません。案1:Velocityをバージョンアップして試す案2:Velocityのログを出力しない案3:Velocityのログを適切な場所に出力するように設定するここまではソースの変更とリビルドが必要です。案4:tomcatユーザーのホームディレクトリを変更する(副作用の可能性)案5:tomcatの別バージョン(8.5?)のパッケージでホームディレクトリが違うことを期待する私は2を試してうまくいきましたが、適切とは限りません。
CentOS 8 のサポート終了アナウンスを受けて ubuntu へ乗り換えました。その過程で同様の現象に見舞われました。なぜそうなるのか、への理解が全然でお恥ずかしいのですが、取り急ぎのご報告です。あわよくば識者の解説が頂けるとうれしいな、などと下心を抱きつつ。 OS ubuntu 20.04 LTS## adoptopenjdk インストールadd-apt-repository --yes ppa:rpardini/adoptopenjdkapt -y install adoptopenjdk-11-jdk-hotspot-installer## tomcat9 インストールapt -y install tomcat9※ /etc/default/tomcat9 へ JAVA_HOME=/usr/lib/jvm/adoptopenjdk-11-jdk-hotspot 追記## Groupsession インストールsystemctl stop tomcat9cp gsession.war /var/lib/tomcat9/webappssystemctl start tomcat9上記手順ですんなりインストールできたのですが、adoptopenjdk インストールのくだりをapt -y install adoptopenjdk-11-installer とやると、velocity.log 関連エラーでgsession が起動できませんでした。
> CentOS 8 のサポート終了アナウンスを受けて ubuntu へ乗り換えました。CentOSに慣れているなら、一旦7に戻す選択肢もあります。8よりも長く、2024/6/30まで使える予定です。> ※ /etc/default/tomcat9 へ JAVA_HOME=/usr/lib/jvm/adoptopenjdk-11-jdk-hotspot 追記この記述が有効でないか、このパスに権限がない可能性があります。通常の書き込み先はtomcat起動ユーザーのhome(psでユーザーを確認して/etc/passwdでhomeを確認)です。なお、tomcat9をパッケージで入れることでopenjdk系のパッケージが自動でインストールされている可能性が高いです。複数のjdkをインストールしている場合、どのjdkが使用されるかはalternativesパッケージで管理されているかもしれません。
デイル様ご返信ありがとうございます。エラーの出る条件を確認しようと、先に記載の手順をOSのクリーンインストールから行ってみたのですが・・・すみません、インストールパッケージに adoptopenjdk-11-jdk-hotspot-installer を指定してもadoptopenjdk-11-installer を指定してもエラーは出ず、Groupsessionが正常に実行できてしまいました。エラーの出る環境はつぶしてしまったので、さて何がいけなかったのか今となっては不明です。ご指摘のように、libtomcat9-java とか余計なものを一緒に入れていたのかもしれません。間違った話でお時間を取らせ、申し訳ありません。※ OSにubuntuを選んだのは、引継ぎ用の立ち上げ手順書作るにあたって aptで色々済ませられる方が 楽かな、という横着な考えからです、ハイ。
velocity.logとUbuntu20の対応を自身のブログにまとめました。よろしければ以下を参照ください。https://good-arrow.hatenablog.com/entry/2021/08/24/232512
TOP