带有MSBuild Runner的SonarQube 6.5由于HTTP 400错误导致构建失败

问题描述:

我们使用SonarQube v6.5和MSBuild Runner v3.0.2.656来分析一堆C#/ .NET程序集。 SonarQube能够分析我们的许多项目而没有问题,但在其他项目上失败。带有MSBuild Runner的SonarQube 6.5由于HTTP 400错误导致构建失败

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

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容器的问题?

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

预先感谢您!

+0

错误引用标题。任何方式来嗅探他们? –

看着这篇日志:

DEBUG:POST 400 http://fusionbuilder.wsicorp.com:9000/api/ce/submit?projectKey=Fusion:WebServices:AccessDB&projectName=D:\融合%20workspaces \融合%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:但没有\字符的项目名称。

+0

谢谢!问题在于项目的命名 - 我急于让我们的版本翻新,我必须复制/粘贴错误的东西。 –