【问题标题】:SonarQube 6.5 with MSBuild Runner Causes Build Failures Due to HTTP 400 Error带有 MSBuild Runner 的 SonarQube 6.5 由于 HTTP 400 错误导致构建失败
【发布时间】:2018-03-26 03:37:09
【问题描述】:

我们使用 SonarQube v6.5 和 MSBuild Runner v3.0.2.656 来分析一堆 C# / .NET 程序集。 SonarQube 能够毫无问题地分析我们的许多项目,但在其他项目上却失败了。

我们在构建日志中看到以下错误:(为清楚起见,删除了时间戳)

INFO: Analysis report generated in 203ms, dir size=257 KB
INFO: Analysis reports compressed in 78ms, zip size=93 KB
INFO: Analysis report generated in D:\Fusion workspaces\Fusion main web services build (development)\AccessDB\.sonarqube\out\.sonar\batch-report
DEBUG: Upload report
DEBUG: POST 400 http://fusionbuilder.wsicorp.com:9000/api/ce/submit?projectKey=Fusion:WebServices:AccessDB&projectName=D:\Fusion%20workspaces\Fusion%20main%20web%20services%20build%20(development)\AccessDB | time=1031ms
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------

在 SonarQube 服务器上,web.log 中也出现以下错误:

INFO  web[][o.a.c.h.Http11Processor] Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:472)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:683)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

在论坛上搜索了一下之后,我们检查并更改了项目中的所有源文件以编码为 UTF-8 认为这可能是问题,但这并没有解决问题。

第一个问题:这是 SonarQube 的问题,还是 Tomcat J2EE 容器的问题?

第二个问题:我们如何解决这个问题?

提前谢谢你!

【问题讨论】:

  • 错误引用了标题。有什么办法可以闻到它们?

标签: c# msbuild sonarqube sonarqube-scan


【解决方案1】:

查看此日志:

调试:POST 400 http://fusionbuilder.wsicorp.com:9000/api/ce/submit?projectKey=Fusion:WebServices:AccessDB&projectName=D:\Fusion%20workspaces\Fusion%20main%20web%20services%20build%20(开发)\AccessDB |时间=1031ms

看起来projectName被设置为D:\Fusion workspaces\Fusion main web services build (development)\AccessDB,这是一个很奇怪的项目名称。

当您使用 Scanner for MSBuild 运行开始步骤时,您可以使用 /n 参数指定项目名称,例如:/n:"Project Name"。我建议指定一个不带D: 且不带\ 字符的项目名称。

【讨论】:

  • 谢谢!问题是项目的命名——在我匆忙改造我们的构建时,我一定是复制/粘贴了错误的东西。
猜你喜欢
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 2016-12-08
  • 2018-04-22
  • 2015-09-04
  • 1970-01-01
  • 2023-01-02
  • 2018-05-20
相关资源
最近更新 更多