Не удается запустить Sonarqube 6.7 в Windows 7

Я не могу запустить Sonarqube 6.7 в Windows 7.

Я только что скачал его с сайта. Я использую JDK 1.8.0_144 в качестве среды выполнения Java. Когда я запускаю «StartSonar.bat», я получаю следующее исключение:

wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    | 2017.12.11 14:17:21 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory C:\Tools\sonarqube-6.7\temp
jvm 1    | 2017.12.11 14:17:21 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
jvm 1    | 2017.12.11 14:17:21 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [C:\Tools\sonarqube-6.
7\elasticsearch]: C:\Java\jdk1.8.0_144\jre\bin\java -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+Always
PreTouch -server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -Djdk.io.permissionsUseCanonicalPath=true -Dio.netty.noUnsafe=true -Dio.
netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true -X
ms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -Delasticsearch -Des.path.home=C:\Tools\sonarqube-6.7\elasticsearch -cp lib/* org.elasticsearch.bootstrap.Elasti
csearch -Epath.conf=C:\Tools\sonarqube-6.7\temp\conf\es
jvm 1    | 2017.12.11 14:17:21 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
jvm 1    | 2017.12.11 14:17:21 INFO  app[][o.e.p.PluginsService] no modules loaded
jvm 1    | 2017.12.11 14:17:21 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
jvm 1    | 2017.12.11 14:17:22 WARN  app[][o.e.t.n.Netty4Transport] exception caught on transport layer [[id: 0xcd8d6c6a, L:/127.0.0.1:63293 - R:/127.0.0.1:9001
]], closing connection
jvm 1    | io.netty.handler.codec.DecoderException: java.io.StreamCorruptedException: invalid internal transport message format, got (48,54,54,50)
jvm 1    |      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:459)
jvm 1    |      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
jvm 1    |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
jvm 1    |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
jvm 1    |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
jvm 1    |      at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241)
jvm 1    |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
jvm 1    |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
jvm 1    |      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
jvm 1    |      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
jvm 1    |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
jvm 1    |      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
jvm 1    |      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
jvm 1    |      at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
jvm 1    |      at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
jvm 1    |      at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
jvm 1    |      at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
jvm 1    |      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
jvm 1    |      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
jvm 1    |      at java.lang.Thread.run(Thread.java:748)
jvm 1    | Caused by: java.io.StreamCorruptedException: invalid internal transport message format, got (48,54,54,50)
jvm 1    |      at org.elasticsearch.transport.TcpTransport.validateMessageHeader(TcpTransport.java:1276)
jvm 1    |      at org.elasticsearch.transport.netty4.Netty4SizeHeaderFrameDecoder.decode(Netty4SizeHeaderFrameDecoder.java:36)
jvm 1    |      at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
jvm 1    |      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)
jvm 1    |      ... 19 common frames omitted

Любые идеи относительно того, что происходит? Спасибо.


person Ian Rowlands    schedule 11.12.2017    source источник
comment
Можете ли вы опубликовать свою конфигурацию (файл sonar.properties)?   -  person Eric Hartmann    schedule 11.12.2017
comment
Я использую все, что идет прямо из дистрибутива программного обеспечения. Все, что я сделал, это разархивировал в каталог и попытался начать использовать скрипт StartSonar.bat.   -  person Ian Rowlands    schedule 11.12.2017
comment
Вы разблокировали zip перед распаковкой? Это важно.   -  person Jeroen Heier    schedule 11.12.2017
comment
@EricHartmann все в sonar.properties закомментировано - так оно и есть сразу после распаковки   -  person Ian Rowlands    schedule 13.12.2017
comment
@JeroenHeier Не уверен, что вы имеете в виду под разблокировкой. В любом случае ссылка docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes не говорит ничего делать.   -  person Ian Rowlands    schedule 13.12.2017
comment
@IanRolands После загрузки zip перейдите на страницу свойств. На одной из вкладок вы найдете флажок «Разблокировать»; активировать его. Вы не можете найти этот шаг в документации SonarQube.   -  person Jeroen Heier    schedule 13.12.2017
comment
@IanRowlands, я не могу понять проблему. Можете ли вы, например, опубликовать все свои файлы журналов (sonar.log, web.log, es.log и ce.log) в Gist? Это поможет понять проблему, с которой вы столкнулись.   -  person Eric Hartmann    schedule 13.12.2017
comment
@EricHartmann Обнаружил проблему при публикации файлов журнала. Очевидно, порт ElasicSearch конфликтовал с портом, который я уже использовал. Я остановил оскорбительный процесс, и все было в порядке. Я перенастроил порт, чтобы просто использовать свободный порт. Спасибо за предложение.   -  person Ian Rowlands    schedule 14.12.2017
comment
@IanRowlands, спасибо за обновление!   -  person Eric Hartmann    schedule 14.12.2017


Ответы (3)


Ошибка возникла из-за конфликта порта ElasicSearch с другим портом. Я перенастроил его на использование свободного порта (увидев его на 0), и все заработало нормально.

person Ian Rowlands    schedule 15.12.2017
comment
# Порт эластичного поиска. По умолчанию 9001. Используйте 0, чтобы получить свободный порт. # Из соображений безопасности должен быть заблокирован брандмауэром и защищен от доступа в Интернет. #sonar.search.port=9001 -> измените порт с 9001 на 0 -> вы можете найти этот файл в папке sonarqube-your-version-folder/conf/sonar.properties - person Anthony Piñero; 18.06.2020

Я также столкнулся с той же проблемой. После некоторого устранения неполадок понял, что порт Elasticsearch по умолчанию, используемый SonarQube, уже используется в моей среде Windows.

Вывод netstat -ao в командной строке

Proto  Local Address          Foreign Address      State           PID
TCP    0.0.0.0:9001           UserX:0              LISTENING       4

Вот раздел конфигурации Elasticsearch по умолчанию в sonar.properties.

# Elasticsearch port. Default is 9001. Use 0 to get a free port.
# As a security precaution, should be blocked by a firewall and not exposed to the Internet.
# sonar.search.port=9001

Итак, я изменил порт Elasticsearch в sonar.properties на 9005, и все заработало как часы. Также вы можете использовать порт 0, как указано здесь, чтобы использовать свободный порт.

# Elasticsearch port. Default is 9001. Use 0 to get a free port.
# As a security precaution, should be blocked by a firewall and not exposed to the Internet.
sonar.search.port=9005
person Indika R    schedule 29.05.2020
comment
установка порта на 9005 сработала для меня. - person Farooq Hanif; 07.12.2020

В Windows вы можете попробовать убить процесс:

netstat -ano | findstr :PORT_NUMBER

затем с PID сделайте следующее:

taskkill /PID PID /F

в некоторых случаях, например, в gitbash, необходима двойная косая черта

taskkill //PID PID //F
person Anthony Piñero    schedule 18.06.2020