2016-08-27 6 views
2

私は、Springコンテキストからいくつかの実行時コンストラクタパラメータを持つプロトタイプBeanを取得する問題に直面しています。以下のようなものですBeanを取得するためにコンストラクタパラメータを持つプロトタイプのSpring getBean()がエラーをスローする

@Configuration 
@ComponentScan(basePackages = "com.abc") 
public class AppConfig { 

    @Bean 
    @Scope("prototype") 
    public QueryAction getQueryAction(IoSession session, Message message) { 
     return new QueryAction(session, message); 
    } 

} 

と私のコード:

私は「
ContextProvider.getContext().getBean(QueryAction.class, session, message); 

java.lang.NoSuchMethodError: org.springframework.context.ApplicationContext.getBean(Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object; 

私のAppConfigはこのようなものです:それは私がcontext.getBean()メソッドを呼び出すときに、このエラーがスローされます私が渡しているパラメータ(session and message)が正しいタイプであることを確かめてください。誰でもこれを手伝ってもらえますか?

+0

あなたはどのバージョンのSpringを使用していますか? – hotzst

+0

@hotzstすべてのコア、豆、コンテキスト、コンテキストサポートに4.1.6を使用しています –

+0

@ShawnSongこれは、時間とランタイムのコンパイル時に異なるバージョンの春バージョンを使用しているようです。 –

答えて

0

これは私の半分の解決策です。私は単語の限界のために答えとしてそれを置くことができます。

申し訳ありませんが、これまで私が行ってきたことはありますか?

私はちょうど1つの主な機能と春の依存関係を持つきれいなプロジェクトをセットアップしました。全く問題なし!日食では、前のプロジェクトのJava Build Path -> Order and Exportのタブを確認しました。私は春の瓶が底にあることを発見した。テスト目的で他のjarファイルやプロジェクトに依存しているので、私は単純にすべてのspring jarファイルをソースフォルダの下に移動します。その後、問題は解決されます。

私は他の依存関係がまったく同じパッケージ名とクラス名を持っているため、いくつかのスプリングクラスが原因でロードされていないと考えています。私の頭の上にある解決策は、別のClassLoaderを使ってSpringのapplicationContextをロードしてインスタンス化することですが、それが実現可能かどうかはわかりません。

私はこの質問に後で戻ってきます。

関連する問題