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服務器端安全配置升級,從而導致客戶端連接問題?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM