gpt4 book ai didi

java - Tomcat 重新启动后 session JDBCStore 失败 java.lang.Class.forName NullPointerException - 但只有一分钟左右,然后工作

转载 作者:行者123 更新时间:2023-12-02 11:19:42 25 4
gpt4 key购买 nike

所以,我有一个有效的 Tomcat JDBC session 存储解决方案已经有一段时间了。我部署了我认为不相关的更改(并且我回滚到之前的 war 并且新问题仍然存在)。
问题
我可以重现这样的问题

  • systemctl restart tomcat
  • 等待 war 加载,经理响应等
  • 访问获取 session 的 Web 应用程序页面,系统错误:
  • java.lang.NullPointerException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.apache.catalina.session.JDBCStore.open(JDBCStore.java:955)
    (apache的JDBCStore实现的这部分尝试使用类名加载db驱动程序)
  • 我一直在访问网页 -> syserr 出现同样的错误
  • 我一直这样做一分钟左右
  • 错误突然不再出现并且 session 存储正常工作(将新 session 一直保存到正确的数据库,自上次重新启动以来正确获取 session )

  • 我试过的
  • 我已经检查了 context.xml(具有 JDBCStore 配置)没有被更新更改(并且肯定没问题,因为应用程序最终确实可以工作)
  • 我已经仔细检查了 jdbc 驱动程序是否在 tomcat/lib 文件夹中,具有权限等(当然这是因为该应用程序最终可以正常工作)
  • 我试图考虑可能导致此问题的服务器上的任何更改,但我画的是空白
  • kill -9 <pid> 杀死 Tomcat而不是 systemctl restart没什么区别
  • 停止 Tomcat,等待约 3 分钟并启动:没有区别, session 存储工作前仍需等待约 1 分钟

  • 我怀疑 JDBCStore(它是“内部 Tomcat 的东西”,不是我的应用程序的一部分)无法使用 Class.forName 加载驱动程序,但是我在同一个 Tomcat 上运行的其他一些应用程序/连接轮询成功了,并且之后 JDBCStore 也可以工作。我不知道为什么现在会出现这种情况,但不能在一个月前说出来。无论如何,任何提示都会很好。
    Tomcat8
    openjdk version "1.8.0_265"
    RHEL 7.9

    最佳答案

    如果 tomcat 无法打开与数据库的连接,它将抛出 NPE,检查 this提交修复它。更新您将发布的 tomcat,其中包含此最新补丁,您将无法获得 NPE。
    但是请检查为什么您无法连接到数据库。

    关于java - Tomcat 重新启动后 session JDBCStore 失败 java.lang.Class.forName NullPointerException - 但只有一分钟左右,然后工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64433288/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com