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:65java

根据官方的解决方案mysql


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

一般,日志和屏幕中显示的此错误是由Confluence没法链接到数据库引发的:confluence.cfg.xml文件中设置的凭据无效。另外一种多是数据库密码已过时,而且须要重置而且服务器须要从新启动。另外一个是该表确实不存在 - 若是升级失败。数据库

因此,基本上,咱们须要你作的是:安全

检查<CONFLUENCE-HOME>是否不可写(检查目录和子目录的权限)
Confluence数据库不可用 - 检查<CONFLUENCE-HOME> /confluence.cfg.xml中的链接参数,并验证数据库用户是否能够访问全部汇合表以及密码是否相同。
若是这不起做用,请附上最新的atlassian-confluence.log文件,该文件位于<Confluence Home / logs>目录中,以便咱们能够仔细检查是否存在可能的不一样根本缘由。服务器

 

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

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

 

为了排除问题,我删光了日志而且重启了一次应用,发现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.ui

 

通过一番百度发现是不行的,因而我转向了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服务器端安全配置升级,从而致使客户端链接问题?

相关文章
相关标签/搜索