2016-11-11 10 views
1

私は、Spring Webアプリケーションでjax-rsエンドポイントを使用するために、JerseyとSpringの統合を使用しようとしています。スプリングでアノテーションされたメンバーを持つジャーナルエンドポイントをテストする@Value

私の問題は、@Valueで注釈が付けられたアプリケーションのメンバーが私たちのユニットテストで生成されないということです。

@Autowiredが設定されているものは正常に動作します。また、文字列のセッターメソッドを作成し、@Valueでそれをアノテーションしても動作します。

@Valueで直接注釈を付けられたメンバーはテストでは動作しませんが、Tomcatにデプロイしたときに動作します。

これは何らかの理由でテスト設定に問題がありますか?または、これはどこかの既知の問題ですか?

これらは私が考えて、関連する依存関係です:

<dependency> 
    <groupId>org.glassfish.jersey.ext</groupId> 
    <artifactId>jersey-spring3</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.glassfish.jersey.test-framework</groupId> 
    <artifactId>jersey-test-framework-core</artifactId> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.glassfish.jersey.test-framework.providers</groupId> 
    <artifactId>jersey-test-framework-provider-jetty</artifactId> 
    <scope>test</scope> 
</dependency> 

ここで問題をexamplifies小さなプロジェクト: https://github.com/alexanderkjall/jersey-jetty-interaction-example/blob/master/src/main/java/no/hackeriet/bugs/SpringRequestResource.java

+0

関連するコードを追加できますか? – kuhajeyan

+0

私は実際に作業からコードベースを共有することはできませんが、ここで問題を再現しました:https://github.com/alexanderkjall/jersey-jetty-interaction-example/blob/master/src/main/java/no/hackeriet /bugs/SpringRequestResource.java これは意図された動作だと思いますが、理由はわかりません ( 'mvn jetty:run'というコードを実行してください) –

+0

これはバグでしょうか? – kuhajeyan

答えて

1

は、あなたはそれがうまく働いた追加した後、コンポーネント・スキャンを欠落している可能性がありますされているようです私のために。

<context:component-scan base-package="no.hackeriet.bugs" /> 

しかし、コンポーネントスキャンを使わずにTwitterがどのように機能しているかわかりません。

+1

単体テストでコンポーネントスキャンを使用しないことをお勧めします。これはテストのコンテキストを明示的に制御したいからです。 ジャージーでこれについての問題をここで開けました:https://java.net/jira/browse/JERSEY-3183 –

関連する問題