简而言之:有没有办法配置(在 SonarQube 5.5 中引入)使用的所有端口,management-agent.jar
甚至禁用它?
更多信息:我正在尝试在 OpenShift 上运行 SonarQube(再次),这次是 5.5/5.6 版。启动时出现以下错误:Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 0; nested exception is: java.net.BindException: Permission denied
.
到目前为止我发现的是
- 代理打开三个端口,
- 其中两个可以配置(系统属性
com.sun.management.jmxremote.port
和com.sun.management.jmxremote.rmi.port
) - 但其中一个设计始终是临时端口(端口 0),这似乎不适用于 OpenShift。
除了将端口明确设置为 OpenShift 上的允许范围(端口 15000-35530)之外,我尝试了该-XX:+DisableAttachMechanism
选项,但没有成功。
任何想法如何解决这个问题?SonarQube 可以在没有代理的情况下工作吗?
如何重现:从这里创建一个 OpenShift 应用程序,然后将SONAR_VERSION
to5.5
或5.6
in更改为.openshift/action_hooks/build
完整的堆栈跟踪
2016.06.02 16:09:34 INFO app[o.s.p.m.JavaProcessLauncher] Launch process[es]: java -Djava.awt.headless=true -javaagent:jre/lib/management-agent.jar -cp ./lib/common/*:./lib/search/* org.sonar.search.SearchServer
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 0; nested exception is:
java.net.BindException: Permission denied
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:384)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:397)
Caused by: java.lang.RuntimeException: Exception thrown by the agent
at sun.management.Agent.error(Agent.java:520)
at sun.management.Agent.error(Agent.java:511)
at sun.management.Agent.startAgent(Agent.java:268)
at sun.management.Agent.agentmain(Agent.java:134)
at sun.management.Agent.premain(Agent.java:116)
... 6 more