2012-03-13 12 views
2

新しいモデルを定義するためにSonar用のプラグインを作成しようとしています。私はMavenでコンパイルしてうまく動作するリファレンスプラグインから始めました。私は私のクラスTestmodelDefinition.javaを追加すると、それはまだ罰金コンパイルが、私は、サーバーを再起動したときに、私は503エラーページを取得し、ログにスタックトレースがある:Sonarサーバーが満たされていない依存関係で起動できない:クラスjava.lang.String

org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException: com.mycompany.sonar.reference.models.TestModelDefinition has unsatisfied dependency: class java.lang.String among unsatisfiable dependencies: [[class java.lang.String]] where [email protected]:119<I<[email protected]:7<I<[email protected]:19<| was the leaf container being asked for dependencies. 
     at org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:188) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:110) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector.access$100(ConstructorInjector.java:51) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:308) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:274) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:341) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:689) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:638) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:617) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.parameters.CollectionComponentParameter.getArrayInstance(CollectionComponentParameter.java:311) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.parameters.CollectionComponentParameter.access$100(CollectionComponentParameter.java:48) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.parameters.CollectionComponentParameter$1.resolveInstance(CollectionComponentParameter.java:138) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:141) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:76) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:286) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:312) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:274) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:341) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:689) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:638) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:617) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.containers.ImmutablePicoContainer.getComponent(ImmutablePicoContainer.java:40) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:704) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:638) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:627) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:105) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:76) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:286) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:312) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:274) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:341) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.instantiateComponentAsIsStartable(DefaultPicoContainer.java:1014) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.addAdapterIfStartable(DefaultPicoContainer.java:1006) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:983) ~[picocontainer-2.10.2.jar:na] 
     at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:746) ~[picocontainer-2.10.2.jar:na] 
     at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:70) ~[sonar-plugin-api-2.13.1.jar:na] 
     at org.sonar.server.platform.Platform.executeStartupTasks(Platform.java:236) ~[classes/:na] 
     at org.sonar.server.platform.Platform.start(Platform.java:116) ~[classes/:na] 
     at org.sonar.server.platform.PlatformLifecycleListener.contextInitialized(PlatformLifecycleListener.java:33) [classes/:na] 
     at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) [jetty-6.1.25.jar:6.1.25] 
     at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) [jetty-6.1.25.jar:6.1.25] 
     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272) [jetty-6.1.25.jar:6.1.25] 
     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) [jetty-6.1.25.jar:6.1.25] 
     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489) [jetty-6.1.25.jar:6.1.25] 
     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) [jetty-util-6.1.25.jar:6.1.25] 
     at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) [jetty-6.1.25.jar:6.1.25] 
     at org.mortbay.jetty.Server.doStart(Server.java:224) [jetty-6.1.25.jar:6.1.25] 
     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) [jetty-util-6.1.25.jar:6.1.25] 
     at org.sonar.application.JettyEmbedder.start(JettyEmbedder.java:79) [sonar-application-2.13.1.jar:na] 
     at org.sonar.application.StartServer.main(StartServer.java:50) [sonar-application-2.13.1.jar:na] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_20] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.6.0_20] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.6.0_20] 
     at java.lang.reflect.Method.invoke(Method.java:616) ~[na:1.6.0_20] 
     at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240) [wrapper-3.2.3.jar:3.2.3] 
     at java.lang.Thread.run(Thread.java:636) [na:1.6.0_20] 

私はWindows上でEclipseを使用していますXPマシンでコードを書くことはできますが、コンパイルして64ビットUbuntu 10.04サーバー版で実行します。 私は

import java.lang.*; 

を追加するだけで試してみましたが、それは何も解決しませんでした。

編集:ここでは はTestmodelDefinitionです:

package com.mycompany.sonar.reference.models; 

import java.lang.*; 

import org.sonar.api.qualitymodel.*; 
import org.sonar.api.measures.*; 

public final class TestModelDefinition extends ModelDefinition { 

    public TestModelDefinition(String name) { 
    super(name); 
    // TODO Auto-generated constructor stub 
    } 

    @Override 
    public Model createModel() { 

    Model testModel = Model.createByName("ISO 9126 way"); 

    String parentName = "Maintainability"; 
    String name = "Testability"; 

    Characteristic parentCharacteristic = Characteristic.createByName(parentName); 
    Characteristic newCharacteristic = Characteristic.createByName(name); 

    CharacteristicProperty newProperty = CharacteristicProperty.create("Tests"); 

    parentCharacteristic.setEnabled(true); 
    newCharacteristic.setEnabled(true); 
    parentCharacteristic.addChild(newCharacteristic); 

    testModel.addCharacteristic(parentCharacteristic); 
    testModel.addCharacteristic(newCharacteristic); 

    return testModel; 
    } 

} 
+0

「TestModelDefinition」を表示できますか?どうやらそれは 'String'依存関係を持っています。 –

+0

あなたの問題には関係ないが、 'java.lang。*'は自動的にインポートされるので、明示的に行う必要はありません。 – nwinkler

+0

Mavenが成功したビルドを報告したときに私は多くのことを考え出しましたが、エラーが私を混乱させました – tmikulcek

答えて

5

文字列はPicoコンテナによって挿入できるタイプではありません。クラスにデフォルトコンストラクタを提供する必要があります。

+0

それは問題を解決しました – tmikulcek

+0

はIntellijプラグインの開発のためにそれを解決します –

0

これは、配線の問題です。

com.mycompany.sonar.reference.models.TestModelDefinitionは 不満の依存関係を持っています充足 依存関係の中でクラスjava.lang.String:[[クラスjava.lang.Stringで]]

メイク必要な 'String'オブジェクトが注入されていることを確認してください。

+0

私はかなりJavaに新しいです。それ、どうやったら出来るの? – tmikulcek

関連する問題