蓮沼です。
最初に回答を申し上げると、現状では不可能と思って良いです。ただし、多くの方々が必要性を感じているようで、今後のアップデートで実現できるようになる可能性は十分にあります。
現状、Jersey 2.x の DI は CDI (GlassFish 4 の場合は Weld) に依存しています。Weld も Guice も JSR 330 に基づく DI を実装しているため、何も考えずに Weld と Guice を共存させるようなことをすると、良くて Guice が無視され、最悪の場合は Weld と Guice がコンフリクトして地獄のようなデバッグ作業が待ち受けています。
もっとも、Jersey プロジェクトでは Guice への対応も進めているようで、例えば以下のようなチケットが起票されていたりします(まだ解決していませんが)。
https://java.net/jira/browse/JERSEY-1950
GlassFish 4 の CDI については、HK2/OSGi といった GlassFish の基盤が密接に関連しており (GlassFish 3 との最大の相違点)、一筋縄ではいかないようです。
また、「具体的な実装方法が分からない」とのことですが、Java SE 環境では手動で DI コンテナを設定して最初の Bean をロードする必要がありますが、Java EE 7 環境ではデフォルトで CDI が DI コンテナとして設定されており、勝手に Bean を探し出して DI をやってしまう仕様が、今回のケースでは裏目に出ていると思われます。Java EE 7 の場合、標準では Guice の初期化を行う便利な API が存在しない、というのが今回の話をややこしくしているところでしょう。
Jersey 2 の Guice 3 対応については、Jersey の基盤である Servlet 3.x のリスナーを活用して Guice のコンテナを起動し、リソースクラスを Guice の管轄下に置こうという方針で進めているようです。CDI も beans.xml で DI のスキャンを無効化するオプションも用意されているため、将来的には連携できるようになる可能性があります。
まとめると、
- 現状、コンテナ上で Jersey 2 の DI を Guice 3 で実現するのは極めて困難。
- もし Guice 3 にこだわるのなら、Jersey 2 だけでなくその基盤である Servlet 3.1 を活用する必要がある。
と言ったところでしょうか。
私も最近、DI コンテナ関連の情報を集めています(Weld/Weld SE、Guice、Spring に限られますが)。途中経過をお知らせ頂けると、当方でも検証することができるかもしれません。今後も途中経過をご報告頂けると何かしらお力添えができるのではないかと思っています。
どうぞよろしくお願いします。