2017-10-13 184 views
1

我們使用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

錯誤引用標題。任何方式來嗅探他們? –

回答

1

看着這篇日誌:

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

謝謝!問題在於項目的命名 - 我急於讓我們的版本翻新,我必須複製/粘貼錯誤的東西。 –