关于SonarQube生成报告报"ConnectionException: HTTP error: 500"的问题,如何解决?

sonar扫描分析代码时遇到的问题,该问题导致我无法生成PDF报告。
所使用版本:sonarqube7.7。
报错代码如下:


```java
INFO: Executing post-job 'PDF Report'
INFO: Executing decorator: PDF Report
INFO: Team workbook report type selected
INFO: waiting for Compute Engine task.........
INFO: Can't get Compute Engine task status.Retry.........
org.sonarqube.ws.connectors.ConnectionException: HTTP error: 500, msg: , query: org.apache.commons.httpclient.methods.GetMethod@6aa9eb7d
    at org.sonarqube.ws.connectors.HttpClient3Connector.executeRequest(HttpClient3Connector.java:107)
    at org.sonarqube.ws.connectors.HttpClient3Connector.execute(HttpClient3Connector.java:87)
    at org.sonarqube.ws.client.WSClient.find(WSClient.java:74)
    at org.sonar.report.pdf.PDFReporter.waitCeTask(PDFReporter.java:198)
    at org.sonar.report.pdf.PDFReporter.getProject(PDFReporter.java:182)
    at org.sonar.report.pdf.PDFReporter.getReport(PDFReporter.java:101)
    at org.sonar.report.pdf.batch.PDFGenerator.execute(PDFGenerator.java:114)
    at org.sonar.report.pdf.batch.PDFPostJob.execute(PDFPostJob.java:105)
    at org.sonar.scanner.postjob.PostJobWrapper.execute(PostJobWrapper.java:49)
    at org.sonar.scanner.postjob.PostJobsExecutor.execute(PostJobsExecutor.java:48)
    at org.sonar.scanner.postjob.PostJobsExecutor.execute(PostJobsExecutor.java:39)
    at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:327)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
    at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:128)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
    at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73)
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:99)
    at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
    at com.sun.proxy.$Proxy0.execute(Unknown Source)
    at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
    at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
    at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
    at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
    at org.sonarsource.scanner.cli.Main.main(Main.java:61)


尝试过修改sonar加大内存配置,但没有效果。
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答由chatgpt基于相关博客总结生成:

    这个报错指示了连接到SonarQube的请求遇到了一个HTTP错误500。HTTP错误500通常是服务器内部错误,表明服务器在处理请求时遇到了问题。

    解决这个问题的步骤如下:

    1. 检查SonarQube服务器的日志文件:找到SonarQube服务器的日志文件(通常在SonarQube安装目录下的logs文件夹中),查看是否有与HTTP错误500相关的错误或异常。这些日志通常会提供更详细的错误信息,帮助我们找到问题的根本原因。

    2. 确保SonarQube服务器正常运行:检查SonarQube服务器是否正常运行,并且所有相关的服务都已启动。确保服务器上的硬件资源(如CPU、内存、磁盘空间)足够支持SonarQube的运行。

    3. 更新SonarQube到最新版本:如果你正在使用的是旧版本的SonarQube,尝试将其更新到最新版本。可能有一些已知的问题在新版本中得到了修复。

    4. 检查数据库连接:确认SonarQube服务器能够连接到正确的数据库,并且数据库的连接参数(如URL、用户名、密码)都是正确的。检查数据库的连接池设置是否满足SonarQube的要求。

    5. 检查防火墙或代理设置:如果你的SonarQube服务器位于防火墙后面,确保防火墙允许来自扫描机的连接。如果你的环境使用了代理服务器,请确保代理服务器的配置正确,并且代理服务器允许与SonarQube服务器之间的通信。

    6. 调整SonarQube的内存配置:尝试增加SonarQube的内存配置,确保分配给SonarQube的内存足够大以支持扫描和报告生成的操作。可以通过修改SonarQube安装目录下的conf/sonar.properties文件来修改内存配置。

    如果以上步骤都没有解决问题,说明可能存在更深层次的问题,建议向SonarQube官方论坛或开发者社区寻求帮助。提供详细的报错信息和你的配置信息,以便其他人能够更好地帮助你解决问题。

    希望以上步骤能帮助你解决这个问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^