无法启动Sonar Server

时间:2015-07-28 11:37:09

标签: sonarqube-4.5

我正在使用Sonar生成项目的代码审查报告。但我无法启动服务器。我正在

  

HeapDumpOnOutOfMemoryError

跑步时

  

StartSonar.bat

文件。

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

  

C:\ TEMP2 \ Sonar \ sonarqube-4.5 \ bin \ windows-x86-32> StartSonar.bat包装器   | - >包装器作为控制台包装器启动|启动JVM ... jvm 1
  |包装器(版本3.2.3)http://wrapper.tanukisoftware.org jvm 1 |   版权所有1999-2006 Tanuki Software,Inc。保留所有权利。 jvm 1   | jvm 1 | 2015.07.28 07:30:51 INFO   app [o.s.p.m.JavaProcessLauncher]启动流程[搜索]:   C:\ Software \ jdk1.6.0_18 \ jre \ bin \ java -Xmx256m -Xms256m - Xss256k   -Djava.net.preferIPv4Stack = true -XX:+ UseParNewGC -XX:+ UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction = 75 -XX:+ UseCMSInitiatingOccupancyOnly -XX:+ HeapDumpOnOutOfMemoryError -Djava.awt.headless = true -Djava.io.tmpdir = C:\ TEMP2 \ Sonar \ sonarqube-4.5 \ temp -cp ./lib/common/; ./ lib / search / org。 sonar.search.SearchServer   C:\ Users \用户gxs114 \应用程序数据\本地的\ Temp \ SQ-process8934190933893070058properties   jvm 1 | 2015.07.28 07:30:57 INFO app [o.s.p.m.Monitor]   进程[搜索]是jvm 1 | 2015.07.28 07:30:57 INFO   app [o.s.p.m.JavaProcessLauncher]启动流程[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:\ Users \用户gxs114 \应用程序数据\本地\特   mp \ sq-process4251708419326591677properties jvm 1 | 2015年7月28日   07:30:57 INFO app [o.s.p.m.TerminatorThread]流程[搜索]是   停止jvm 1 | 2015.07.28 07:30:58 INFO   app [o.s.p.m.TerminatorThread]进程[search]停止包装|   < - Wrapper Stopped

     

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

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

6 个答案:

答案 0 :(得分:13)

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

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

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]

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

# 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

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

答案 1 :(得分:6)

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

  1. 使用日志文件(sonarqube-4.5 \ logs)识别端口号。然后确定该过程的PID。然后使用PID终止进程。
  2. 日志看起来像

    java.net.BindException: Address already in use: **JVM_Bind /0.0.0.0:9000**
    

    查找PID

    netstat -a -n -o | find "port_num"
    

    杀死进程

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

答案 2 :(得分:5)

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

杀死java进程并再试一次,它有效。试过并为我工作。

答案 3 :(得分:0)

任务管理器 - >详细信息然后右键单击 - >结束任务 - >对于所有java.exe,如果不确定端口号。然后再次打开cmd提示符 - > startsonar.bat

答案 4 :(得分:0)

根据我的观察,如果Eclipse已经运行,那么首先关闭日食。 检查端口9000是免费的。

然后在服务器启动后从命令提示符运行声纳然后运行eclipse之后。

答案 5 :(得分:0)

您只需要更改 sonar.properties 文件中的端口

查看 sonar.web.port =“ CHANGE_PORT_NUMBER”