問題タブ [hk2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1042 参照

java - Bean が hk2 経由で作成されていない場合、@inject が機能しない

私はコントラクトにサービスを注入しようとしています:

しかし、categoryDAO は null です。

私もそれをバインドしようとしました:

しかし、それでもヌルのままです。

MyCategoryManagerwith Reflections フレームワークを次のように初期化します。

0 投票する
1 に答える
515 参照

google-app-engine - appengine で jersey 2.6 にアップグレードした後の NullPointerException

appengine で jersey を使用して Java アプリケーションを実行しています。最近、新しい HK2 AOP 機能を使用するために jersey 2.6 にアップグレードしました。このアップグレードを行った後、ジャージーを介して Web サービスを要求する際にいくつかの問題が発生しています。サーバーはしばらくの間正常に動作しますが、すべてのリクエストで例外が発生し、バグを修正する唯一の方法はアプリケーションを appengine に再デプロイすることです。コードの行は一切変更せず、アプリケーションを再デプロイするだけです。この問題は、jersey 2.6 にアップグレードし、HK2 AOP で 2 つの methodInterceptors を実装した後に発生しました。バグが表示されたときにすべてのリクエストで取得するスタックは次のとおりです。

0 投票する
2 に答える
3417 参照

java - Jersey 2 の Guice の @Provides に相当する HK2

依存性注入のために Google Guice で Jersey 1.X を使用しています。Jersey 2.X に切り替えるということは、代わりに依存性注入に HK2 を使用する必要があることを意味しているようです。

Guice を使用した Jersey 1.X では、アプリケーションは次のようになります。

そして、テストの場合は次のようになります。

私のリソースは次のようになります。

つまり、テスト用のモックを定義でき、すべてが良好です。

ただし、Jersey 2.X では、@Provides アノテーションに相当するものが見つかりません。MyResource は事実上同じです。実際のアプリケーションの依存性注入については、次のものがあります。

しかし、テスト用のモックを提供する方法がわかりません。誰でも方法を知っていますか?

0 投票する
2 に答える
441 参照

java - テスト目的で汎用化されたスタブを注入する

私は現在、次のクラス/インターフェースをレイアウトしています。タイプは、実装Tから返されるデータの形式を表します。DataProviderファクトリを使用しているため、型情報を に添付する必要はありませんMyStreamingOutputHK2に注入するために使用しDataProviderFactoryていMyStreamingOutputます。

これはすべてうまくいきます。今、私は の単体テストをセットアップしようとしMyStreamingOutputていますが、いくつかの障害に遭遇しています。テスト目的で次の追加クラスを作成しました。

バインディングは

このクラスを に正常に挿入できますが、使用される型情報がファクトリに渡されるインスタンスによって共有されないMyStreamingOutputため、コンパイラの警告が表示されます。インターフェイスを実装しなくなるためgetDataProvider()、クラスに型情報を追加できません。間違っているため、インターフェイスの型情報は必要ありません。スタブの場合を除き、ファクトリはインスタンスによって返される型を気にする必要はありません。この場合、設計が悪いと考えているため、パラメータとパラメータにセッターを使用することは避けたいと思います。DataProviderFactoryStubDataProviderFactoryDataProviderqueryrowMapper

ジェネリックスのアプリケーションに微妙な何かが欠けているか、依存性注入のアプリケーションに明らかな何かが欠けているという感覚を揺るがすことはできません。このユースケースに対処する正しい方法は何ですか? これは DI が対処しようとしている問題のようなものですが、修正方法がわかりません。

0 投票する
3 に答える
4932 参照

java - ServiceLocator はどのようにして HK2 で @Service と @Contact を自動的に見つけますか?

HK2 @Service javadocによると

hk2 ServiceLocatorに自動的に追加されるクラスに配置される注釈。

ServiceLocator注釈付きクラスを自動的に検索する方法がわかりません。

テストサービス

TestServiceImpl

主要

結果は常にnullです。が見つけられるDescriptorように追加する必要があります。ServiceLocator

ServiceLocator注釈付きのクラスを自動的に見つけるにはどうすればよいですか? 私は何かを誤解しましたか?

0 投票する
1 に答える
772 参照

spring - jersey-spring3: Spring マネージド Bean にジャージー OAuth リソースを注入する

Spring マネージド Bean を使用して Jersey 2.7 リソースを挿入しようとしています。具体的には、次のように Spring Bean 内にOAuth1Signatureを注入したいと考えています。


HK2 Spring 統合ドキュメント内で提供されている手順を使用してみました: HK2 Spring Integration。ドキュメントに従って、これをSpring xml構成に追加しました。


ただし、webapp を起動すると、次の例外が発生し続けます。


OAuth1Signature のドキュメントには、Jersey 2.7 が使用する HK2 フレームワークによって ServiceLocator が注入されることになっていると記載されています。サービスロケーターがどこから来るべきかわからないように見えるため、jersey-spring3ブリッジを使用してSpringにOAuth1Signatureをインスタンス化させる方法について非常に混乱しています。

私は StackOverflow や他の Jersey メッセージ ボードを検索してみましたが、それらのほとんどは逆のユース ケース (Jersey リソースに Spring Bean を注入する) を扱っています。これに関する助けがあれば大歓迎です!