サードパーティのライブラリは、多くの場合、デプロイ先のアプリケーションサーバーに含まれており、アプリケーションに含まれているライブラリとクラス分けされます。これまでのところ、これを可能な限り最も単純でハッキーな方法で処理してきました。アプリサーバー上のライブラリを削除することです。
私たちの場合は問題ありません。ライブラリを提供するためにアプリサーバーに依存している人は誰もいません。しかし、アプリケーションサーバーに含まれているライブラリに依存する可能性のある他の多くの人々のアプリと一緒にアプリを実行している場合、これは解決策にはなりません。
これはどのように(きれいに)解決されるはずですか?お元気ですか?
問題の例としては、cxf、hibernate、jacksonを使用してjax-rsアプリケーションを構築し、glassfish2.1.1にデプロイする場合があります。glassfishはasm3.1ライブラリを提供しますが、これにより、互換性のない1.5バージョンを使用したHibernateとの衝突が発生します。同様に、アプリケーションには(バグ修正のために)jackson 1.8.2が必要ですが、glassfish2.1.1にはバージョン0.9が付属しています。ブーム。単に問題のあるライブラリを削除する以外に、これを修正する方法はありますか?