无法启动Sonar Server

Gun*_*hah 11 sonarqube-4.5

我正在使用Sonar生成我项目的代码审查报告.但我无法启动服务器.我正进入(状态

HeapDumpOnOutOfMemoryError

在跑步的时候

StartSonar.bat

文件.

请查找声纳启动时生成的日志.

C:\ TEMP2\Sonar\sonarqube-4.5\bin\windows-x86-32> StartSonar.bat包装器| - > Wrapper作为控制台包装器启动| 启动JVM ... jvm 1
| Wrapper(版本3.2.3)http://wrapper.tanukisoftware.org jvm 1 | 版权所有1999-2006 Tanuki Software,Inc.保留所有权利.jvm 1 | jvm 1 | 2015年7月28日7时30分51秒INFO应用[ospmJavaProcessLauncher]启动过程[搜索]:C:\ SOFTWARE\jdk1.6.0_18\JRE\BIN \的java -Xmx256m -Xms256m - Xss256k -Djava.net.preferIPv4Stack =真-XX :+ UseParNewGC -XX:+ UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction = 75 -XX:+ UseCMSInitiatingOccupancyO NLY -XX:+ HeapDumpOnOutOfMemoryError -Djava.awt.headless =真-Djava.io.tmpdir = C:\ TEMP2 \声纳\ sonarqube-4.5\temp -cp ./lib/common/ ; ./ lib/search /有机 sonar.search.SearchServer C:\ Users\gxs114\AppData\Local\Temp\sq-process8934190933893070058properties jvm 1 | 2015.07.28 07:30:57 INFO app [ospmMonitor]进程[搜索]是jvm 1 | 2015.07.28 07:30:57 INFO app [ospmJavaProcessLauncher]启动进程[web]:C:\ Software\jdk1.6.0_18\jre\bin\java -Xmx768m -XX:MaxPermSi ze = 160m -XX:+ HeapDumpOnOutOfMemoryError -Djava .net.preferIPv4Stack = true -Djava.awt.headless = true -Dfile.encoding = UTF-8 -Djruby.management.enabled = fals e -Djava.io.tmpdir = C:\ TEMP2\Sonar\sonarqube-4.5\temp -cp ./lib/common/ ; ./ lib/server /org.sonar.server.app.WebServer C:\用户\ gxs114 \应用程序数据\本地\碲熔点\ SQ-process4251708419326591677properties JVM 1 | 2015年7月28日7时30分五十七秒INFO应用[ospmTerminatorThread]过程[搜索]正在停止JVM 1 | 2015年7月28日七时30分58秒INFO应用[ospmTerminatorThread]过程[搜索]停止包装| < - Wrapper停止了

C:\ TEMP2 \声纳\ sonarqube-4.5\BIN\windows的X86-32>

我该如何解决这个问题?任何想法/解决方案赞赏.

Gun*_*hah 15

我从声纳日志文件本身得到了解决方案.您可以在sonar.log文件的"sonarqube-4.5\logs"目录下找到服务器启动日志.

由于以下端口绑定异常,我无法启动服务器:

2015.07.29 02:46:36 ERROR web[o.a.c.h.Http11Protocol]  Failed to initialize end point associated with ProtocolHandler ["http-bio-0.0.0.0-9000"]
java.net.BindException: Address already in use: JVM_Bind /0.0.0.0:9000
    at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:411) ~[tomcat-embed-core-7.0.54.jar:7.0.54]
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:640) ~[tomcat-embed-core-7.0.54.jar:7.0.54]
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434) ~[tomcat-embed-core-7.0.54.jar:7.0.54]
    at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119) [tomcat-embed-core-7.0.54.jar:7.0.54]
Run Code Online (Sandbox Code Playgroud)

因此,我在"sonarqube-4.5\conf"目录下的sonar.properties文件中将端口号从"9000"更改为"4950".

# TCP port for incoming HTTP connections. Disabled when value is -1.
sonar.web.port=4950

# TCP port for incoming HTTPS connections. Disabled when value is -1 (default).
#sonar.web.https.port=-1
Run Code Online (Sandbox Code Playgroud)

更改端口号后服务器成功启动.


小智 6

这个问题背后的原因是SONAR已经在使用端口号,你没有正确地结束SONAR.有两种方法可以摆脱这种情况,

  1. 使用日志文件(sonarqube-4.5\logs)标识端口号.然后确定该过程的PID.然后使用PID终止进程.

日志看起来像

java.net.BindException: Address already in use: **JVM_Bind /0.0.0.0:9000**
Run Code Online (Sandbox Code Playgroud)

找到PID

netstat -a -n -o | find "port_num"
Run Code Online (Sandbox Code Playgroud)

杀死进程

taskkill /F /PID "pid"
Run Code Online (Sandbox Code Playgroud)
  1. 只需注销系统并再次登录,然后启动StartSonar.bat文件.它肯定会奏效.


小智 5

如果您已经启动了Sonar并在命令提示符下终止了该进程,则JVM仍将在后台运行。

杀死Java进程,然后重试,它可以工作。试过为我工作。