SonarQube 在插件开发过程中重启失败
SonarQube fails to restart during plugin development
我正在为 SonarQube 4.5.4 / 5.0.1 开发一个插件。我想使用 sonar-dev 插件上传 JAR 文件并快速重启 SQ 服务器。插件使用 REST API (/api/system/restart
),通过设置 sonar.dev=true
属性.
启用
配置如下:
<plugin>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-dev-maven-plugin</artifactId>
<version>1.8</version>
<configuration>
<sonarHome>F:\sonarqube-5.1\sonarqube-5.1</sonarHome>
</configuration>
</plugin>
问题是每次尝试重新启动后服务器都会崩溃,我必须手动重新启动它,这很令人沮丧并且耗尽了我的工作效率。这是在 "restart".
之后每个后续请求返回的堆栈跟踪
org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `controllers' for nil:NilClass
at org.jruby.RubyKernel.method_missing(org/jruby/RubyKernel.java:255)
at RUBY.method_missing(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/whiny_nil.rb:52)
at RUBY.add_java_ws_routes(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/config/../lib/java_ws_routing.rb:34)
at RUBY.reload(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/config/../lib/java_ws_routing.rb:58)
at RUBY.reload_application(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:58)
at RUBY.run(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/reloader.rb:42)
at RUBY.call(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:108)
at RUBY.serve_rails(file:/F:/sonarqube-5.1/sonarqube-5.1/lib/server/jruby-rack-1.1.13.2.jar!/rack/adapter/rails.rb:34)
at RUBY.call(file:/F:/sonarqube-5.1/sonarqube-5.1/lib/server/jruby-rack-1.1.13.2.jar!/rack/adapter/rails.rb:39)
at RUBY.call(file:/F:/sonarqube-5.1/sonarqube-5.1/lib/server/jruby-rack-1.1.13.2.jar!/rack/handler/servlet.rb:22)
And here's what happens in logs 从第 71 行开始。
根据@Simon Brandhof,它可能与锁定文件的class加载程序连接。非常感谢任何线索或解决方法。
Java 插件似乎锁定了它的类加载器。通过删除 extensions/plugins/sonar-java-plugin-3.0.jar
卸载它应该可以解决问题。
我正在为 SonarQube 4.5.4 / 5.0.1 开发一个插件。我想使用 sonar-dev 插件上传 JAR 文件并快速重启 SQ 服务器。插件使用 REST API (/api/system/restart
),通过设置 sonar.dev=true
属性.
配置如下:
<plugin>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-dev-maven-plugin</artifactId>
<version>1.8</version>
<configuration>
<sonarHome>F:\sonarqube-5.1\sonarqube-5.1</sonarHome>
</configuration>
</plugin>
问题是每次尝试重新启动后服务器都会崩溃,我必须手动重新启动它,这很令人沮丧并且耗尽了我的工作效率。这是在 "restart".
之后每个后续请求返回的堆栈跟踪org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `controllers' for nil:NilClass
at org.jruby.RubyKernel.method_missing(org/jruby/RubyKernel.java:255)
at RUBY.method_missing(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/whiny_nil.rb:52)
at RUBY.add_java_ws_routes(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/config/../lib/java_ws_routing.rb:34)
at RUBY.reload(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/config/../lib/java_ws_routing.rb:58)
at RUBY.reload_application(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:58)
at RUBY.run(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/reloader.rb:42)
at RUBY.call(F:/sonarqube-5.1/sonarqube-5.1/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:108)
at RUBY.serve_rails(file:/F:/sonarqube-5.1/sonarqube-5.1/lib/server/jruby-rack-1.1.13.2.jar!/rack/adapter/rails.rb:34)
at RUBY.call(file:/F:/sonarqube-5.1/sonarqube-5.1/lib/server/jruby-rack-1.1.13.2.jar!/rack/adapter/rails.rb:39)
at RUBY.call(file:/F:/sonarqube-5.1/sonarqube-5.1/lib/server/jruby-rack-1.1.13.2.jar!/rack/handler/servlet.rb:22)
And here's what happens in logs 从第 71 行开始。
根据@Simon Brandhof,它可能与锁定文件的class加载程序连接。非常感谢任何线索或解决方法。
Java 插件似乎锁定了它的类加载器。通过删除 extensions/plugins/sonar-java-plugin-3.0.jar
卸载它应该可以解决问题。