2016-08-02 2 views
0

私は、IBM MobileFirst 7.1 Liberty Serverにデプロイされている単純なRestアプリケーションを持っています。 (私はJAX-RSの実装についてはわかりませんが、それは私が信じるリバティー・サーバ・ランタイムに含まれています)JAX-RS - jarファイルから@Providerクラスをロードする

共通のコードのいくつかを他のチームと共有しなければならないので、別のmavenプロジェクトをjaredしてサーバーライブラリとして追加しました。これは、別のmavenプロジェクトに@Providerアノテートされたクラスをいくつか追加しなければならない限り、うまく動作します。具体的には、@ProviderアノテーションでマークされたExceptionMapperの実装です。

私はアプリケーションクラスgetClasses()メソッド内でクラスを直接設定しようとしました。これはうまくいくように見えましたが、例外マッパーの実装に@Providerアノテーションまたは@Pathアノテーション(それらのアノテーション)をマークする必要があるという警告メッセージが表示されます。

JAX-RSにこれらのリソースクラスをJarファイルから認識させるためのトリックがありますか?

+0

いつもIBM MobileFirstバージョンに言及してください... –

+0

@IdanAdar私たちはMFP 7.1を実行しています –

答えて

1

@Providerを認識させるには、JARをserver/libフォルダの代わりにadapter/libフォルダに入れてください。

+0

server/libディレクトリ内で実行する必要はありますか?今は、すべてのアダプタを使用しているため、各アダプタに同じ正確なjarファイルを10個以上コピーしています。私はまた、それがいくつかのクラスを使用するカスタム認証者を持っているので、server/libディレクトリにもあります。 –

+0

申し訳ありませんが、いいえ。アダプターはサンドボックス内にあるため、そのアダプターをデプロイして簡単にデプロイすることができます。アノテーションのためのクラスのスキャンは、アダプタクラスローダー内でのみ行われます。 server/libはアダプターの親クラスローダーであり、そこに見つかりませんでした。 –

+0

それは意味があります、さらなる説明をありがとうございます。 –

関連する問題