2016-08-15 7 views
0

RestEasyを使用してREST APIを構築したいと思います。生成されたファイルは、WildFlyアプリケーションサーバーにデプロイする必要があります。WildFly RestEasyバージョンの混乱

私は、次のSO-質問に記載されている問題に直面します。 AsynchronousDispatcher error

マークされたソリューションは、「提供」するために、依存関係を設定するには、私に語りました。私が理解するところでは、図書館は私の戦争ファイルには含まれておらず、アプリサーバーから直接取り込まれたものです...

それほど間違っていませんか?

私の考えは、私が必要とするバージョンのすべての必要なライブラリを含む自己完結型のwarファイルを構築することです。

app-serverから提供された場合、私はそこから現在入手可能なバージョンを取得します。私は実際にバージョンについての手掛かりがありません...誰かがサーバー上のRestEasyライブラリを更新する考えがある場合、それは私のアプリケーションを壊すかもしれません。

私が何かを見逃したのか、まったく間違っていたのか分かりません。

答えて

1

Java EEの大きな利点の1つは、APIに向かって開発しており、実装について心配する必要はありません。 Java EEコンテナは、APIのAPIと実装を提供します。実装の依存関係を含めると、2つのうちの1つが発生する可能性があります。

  1. 依存関係は無視され、展開に含めるのは無意味です。

  2. あなたが含まれている依存関係と、サーバーが予期しているものとの間に競合が発生します。これは、クラスパス上で同じクラスの2つを見つけるので、

    • ClassCastExceptionのようになります。
    • MethodNotFoundExceptionバージョンの不一致がconflcts代わりに、実装のAPIに向けて開発

  • 他の様々な問題があるためにも、あなたは簡単に最小限にするJava EEの間には準拠したコンテナを切り替えることができますデプロイメントの変更。 APIは一般に下位互換性があり、バージョンアップも問題ではありません。

    WAR(実装を含まない)の代わりに大量のWAR(実装を含む)を使用する場合は、おそらくサーブレットコンテナが優れたソリューションです。 WildFlyにはservlet onlyのダウンロードがあります。私はコンテナを実装の依存関係で適切に行うことを信頼していますが、お勧めします。アップグレードに問題があるのは通常、Java EEバージョンをアップグレードする場合だけです。それでも大丈夫です。