2016-11-12 5 views
0

Grizzly(埋め込みGlassfish)を使用して作成されたJersey 2.xプロジェクトを、Grizzlyを使用しないように変換しようとしています。このアプリケーションはJettyサーバー(9.3)にデプロイされます。Jersey 2.xでCDIをJettyにデプロイ

すべてのGrizzly参照を取り除くとすぐに私のweb.xmlなどが追加されました。@ Injectのすべての参照が機能していないというエラーが発生しています。

元のアプリケーションでは、すべてのCDIの処理にWeldを使用していました。 CDIが桟橋に建てられたという印象を受けましたが、そうではありませんか?

私のPOMには、ジャージーサーバーのすべてのdepsが含まれています。私がエラーを取得している最初の場所は、Oauth Request Filteringを行うファイルです。これはContainerRequestFilterを実装し、@Priority(Priorities.AUTHENTICATION)の注釈を持っています。このクラスの中には、ルックアップを行ういくつかのクラスの@Injectがあります。

@Inject 
private OauthManager manager 

Jettyが起動すると、このクラスに注入するOauthManagerが見つからないことがわかります。

答えて

0

CDIはJettyに組み込まれていません。

CDIはWeldプロジェクトで提供されています。このプロジェクトはJettyでうまく動作します。

これを設定する方法の詳細については、事前に回答を参照してください。

https://stackoverflow.com/a/20505983/775715

+0

だから、うん...それは1以上があると私に語った...私はアプリが展開され得ることができた...そして私が何にアクセスしようとするたびに、しかし、動作しているようです@ RequestScopeの文脈は、私を怒らせている。 –

関連する問題