zoukankan      html  css  js  c++  java
  • confluence 500错误 com.atlassian.util.concurrent.LazyReference

    com.atlassian.util.concurrent.LazyReference $ InitializationException:java.lang.NullPointerException
    com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:149)
    com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112)
    com.atlassian.confluence.setup.ConfluenceEncodingFilter.getGlobalSettings(ConfluenceEncodingFilter.java:45)
    com.atlassian.confluence.setup.ConfluenceEncodingFilter.getEncodingInternal(ConfluenceEncodingFilter.java:35)
    com.atlassian.confluence.setup.ConfluenceEncodingFilter.getEncoding(ConfluenceEncodingFilter.java:27)
    com.atlassian.core.filters.encoding.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:38)
    com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
    com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44)
    com.atlassian.confluence.servlet.FourOhFourErrorLoggingFilter.doFilter(FourOhFourErrorLoggingFilter.java:65

    根据官方的解决方案


    正如在我们的支持故障单案例中解决的那样,错误是数据库凭据已过期。因此,对于可能需要查看此答案线程的其他用户,这是来自Atlassian的响应:

    通常,日志和屏幕中显示的此错误是由Confluence无法连接到数据库引起的:confluence.cfg.xml文件中设置的凭据无效。另一种可能是数据库密码已过期,并且需要重置并且服务器需要重新启动。另一个是该表确实不存在 - 如果升级失败。

    所以,基本上,我们需要你做的是:

    检查<CONFLUENCE-HOME>是否不可写(检查目录和子目录的权限)
    Confluence数据库不可用 - 检查<CONFLUENCE-HOME> /confluence.cfg.xml中的连接参数,并验证数据库用户是否可以访问所有汇合表以及密码是否相同。
    如果这不起作用,请附上最新的atlassian-confluence.log文件,该文件位于<Confluence Home / logs>目录中,以便我们可以仔细检查是否存在可能的不同根本原因。

    然而这并没有什么卵用,我修改了文件夹权限777依旧报错;我还安装了mysql客户端测试是连接正常的,这就奇怪了。

    而且官方的问题支持方案所关系的版本可能和我安装的不一样,confluence.cfg.xml根本不在<CONFLUENCE-HOME>(默认/opt/atlassian/confluence/),而是默认在/var/atlassian/application-data/confluence,导致我还错以为配置文件丢失了。

    为了排除问题,我删光了日志并且重启了一次应用,发现catalina日志显示多条这样的内容

    Mon May 13 15:07:07 CST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

    经过一番百度发现是不行的,于是我转向了bing,它把我带去正确的地方。

    参考https://stackoverflow.com/questions/34189756/warning-about-ssl-connection-when-connecting-to-mysql-database 

    通过在jdbc增加参数解决了问题;参数格式必须这样写

    jdbc:mysql://localhost:3306/Peoples?autoReconnect=true&amp;useSSL=false

    注意必须使用&amp;而不是&符号,useSSL=false是关键

    所以,这是一个因为mysql服务器端安全配置升级,从而导致客户端连接问题?

  • 相关阅读:
    PyCharm 2018 最新激活方式总结(最新最全最有效)!!!
    Python入门编程中的变量、字符串以及数据类型
    用列主元消去法分别解方程组Ax=b,用MATLAB程序实现(最有效版)
    ISE 14.7安装教程最新版(Win10安装)——解决Win10安装完后打不开快捷方式的方法
    Python零基础入门必知
    Python安装教程最新版
    MATLAB实现连续周期信号的频谱分析(正余弦波信号举例)
    Android 基于帧布局实现一个进度条 FrameLayout+ProgressBar
    Android 使用RadioGroup和RadioButton实现单选效果
    Android 使用CheckBox实现多选效果
  • 原文地址:https://www.cnblogs.com/mrtiny/p/10855743.html
Copyright © 2011-2022 走看看