2015-05-25 13 views
7

के दौरान पुनरारंभ करने में विफल रहता है मैं सोनारक्यूब 4.5.4/5.0.1 के लिए एक प्लगइन विकसित कर रहा हूं। मैं एक जेएआर फ़ाइल अपलोड करने के लिए sonar-dev प्लगइन का उपयोग करना चाहता हूं और जल्दी से एसक्यू सर्वर को पुनरारंभ करना चाहता हूं। प्लगइन REST API (/api/system/restart) का उपयोग करता है, जो sonar.dev=true संपत्ति सेट करके सक्षम है।सोनारक्यूब प्लगइन विकास

यहाँ config है:

<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> 

समस्या प्रयास को पुनः आरंभ प्रत्येक के बाद उस सर्वर क्रैश हो जाता है और मैं मैन्युअल रूप से जो निराशा होती है और मेरी उत्पादकता नालियों उसे पुन: प्रारंभ करने के लिए, है। यहां "स्टैरर्ट" के बाद प्रत्येक निम्न अनुरोध पर वापस दिया गया स्टैकट्रैक है।

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 के अनुसार

से शुरू, यह वर्ग लोडर, फ़ाइलें ताले के साथ जोड़ा जा सकता है। किसी भी सुराग या कामकाज की सराहना की जानी चाहिए।

+0

ये संबंधित हैं: http://stackoverflow.com/questions/11273303/java-classloader-dilemma-with-locked-jars और http://stackoverflow.com/questions/3216780/problem-reloading-a -jar-use-urlclassloader – Sergey

उत्तर

6

जावा प्लगइन अपने क्लासलोडर को लॉक करने लगता है। extensions/plugins/sonar-java-plugin-3.0.jar को हटाकर इसे अनइंस्टॉल करना, समस्या को ठीक करना चाहिए।

+0

अरे, यह काम किया। हालांकि मुझे 'जावा-स्क्विड: 3.2' निर्भरता 'compile' के दायरे को बदलना पड़ा, जिसे मैंने पहले 'प्रदान किया' था। मेरा पैकेज वजन '2 9 केबी' से' 2.4 एमबी 'में बदल गया, क्योंकि अन्य पुस्तकालयों का समूह भी शामिल किया गया था। (संक्रमणीय deps?) क्या यह जाने का रास्ता है? क्या यह काम करेगा, जब एसक्यू के पास अलग-अलग प्लगइन से 'जावा-स्क्विड' लाइब्रेरी के विभिन्न संस्करण होंगे? –

+0

इसके अलावा, मैंने अभी सीखा है कि मेरी प्लगइन जावा प्लगइन पर निर्भर करती है, क्योंकि इसमें कुछ अतिरिक्त नियम जोड़े जाते हैं। इसलिए, मेरी प्लगइन इसके बिना काम नहीं करती है। :-) –

+1

यह वास्तव में मेरे विशेष मामले में मदद नहीं करता है, क्योंकि मैं उस प्लगइन पर निर्भर हूं, लेकिन यह समस्या को हल करता है। जावा प्लगइन को ठीक करने के लिए टिकट उठाया जाना चाहिए। प्रयास के लिए धन्यवाद! उत्सुक लोगों के लिए, मैंने गति परीक्षण के लिए यूनिट परीक्षण संचालित प्लगइन विकास के साथ जाने का फैसला किया और यह अच्छी तरह से काम करता है। विकास के दौरान सर्वर की कोई ज़रूरत नहीं है। –

संबंधित मुद्दे