J'obtiens l'erreur ci-dessous lors de l'exécution de l'analyse autonome de sonarqube sous Jenkins. Le scanner sonarqube est capable d'identifier les fichiers à analyser et de les analyser correctement, mais le problème réside dans le moment où il tente de publier le projet sur un tableau de bord.
Lorsque j'ouvre l'URL http: // vv123456: 9000/api/ce/submit? ProjectKey = pkey & projectName = pname dans le navigateur, le message "{" errors ":: La méthode POST est requise "}]}", ce qui signifie que le service Web Sonarqube est correct.
Erreur sur la construction de Jenkins:
ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.Java:91)
at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.Java:75)
at Java.security.AccessController.doPrivileged(Native Method)
at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.Java:69)
at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.Java:50)
at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.Java:102)
at org.sonar.runner.api.Runner.execute(Runner.Java:100)
at org.sonar.runner.Main.executeTask(Main.Java:70)
at org.sonar.runner.Main.execute(Main.Java:59)
at org.sonar.runner.Main.main(Main.Java:53)
Caused by: org.sonarqube.ws.client.HttpException: Error 500 on [http://vv123456:9000/api/ce/submit?projectKey=pkey&projectName=pname][1]
at org.sonarqube.ws.client.BaseResponse.failIfNotSuccessful(BaseResponse.Java:34)
at org.sonar.batch.bootstrap.BatchWsClient.failIfUnauthorized(BatchWsClient.Java:99)
at org.sonar.batch.bootstrap.BatchWsClient.call(BatchWsClient.Java:69)
at org.sonar.batch.report.ReportPublisher.upload(ReportPublisher.Java:172)
at org.sonar.batch.report.ReportPublisher.execute(ReportPublisher.Java:127)
at org.sonar.batch.phases.PublishPhaseExecutor.publishReportJob(PublishPhaseExecutor.Java:64)
at org.sonar.batch.phases.PublishPhaseExecutor.executeOnRoot(PublishPhaseExecutor.Java:51)
at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.Java:86)
at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.Java:192)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.Java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.Java:127)
at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.Java:241)
at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.Java:236)
at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.Java:226)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.Java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.Java:127)
at org.sonar.batch.task.ScanTask.execute(ScanTask.Java:47)
at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.Java:86)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.Java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.Java:127)
at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.Java:106)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.Java:119)
at org.sonar.batch.bootstrapper.Batch.execute(Batch.Java:79)
at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.Java:48)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at Java.lang.reflect.Method.invoke(Unknown Source)
at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.Java:87)
... 9 more
Dans les journaux SonarQube du serveur sur lequel le service Web est hébergé (vv123456 dans mon cas), une erreur était consignée en tant que:
No such file or directory - C:/Windows/system32/config/systemprofile/AppData/Local/Temp
J'ai donc ajouté le chemin d'accès à l'emplacement temporaire dans wrapper.conf en tant que:
set.TMPDIR=/SonarQube/sonarqube-5.6/temp
Cela a résolu le problème.
Je rencontre ce problème aussi. En regardant dans les journaux à /opt/sonar/logs/sonar.log
je peux voir l'erreur suivante:
Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (9122692 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.
Conseils utilisés à partir d'ici https://dev.mysql.com/doc/refman/5.6/fr/packet-too-large.html
et ici
PacketTooBigException lors de l'exécution d'une analyse sonar
et ici
http://codefabulae.blogspot.co.uk/2012/05/sonar-analysis-and-mysql-max-packet.html
La solution finale a été d’écrire ceci dans ma configuration mysql /etc/my.cnf
:
[mysqld]
max_allowed_packet=32M
redémarrer mysqld
Sudo service mysqld restart
et le vérifier via
mysql <insert user credentials here>
mysql> show variables like "max_allowed%";
puis redémarrez le sonar
Sudo service sonar restart
Ensuite, ma construction a cessé d’avoir l’erreur 500 mentionnée.
Voici comment résoudre le problème PacketTooBig, qui est probablement à l'origine du problème.
J'ai trouvé la solution suivante:.
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&max_allowed_packet=512M
Essayez cette procédure, cela a fonctionné pour moi: