環境
私はJUNG ライブラリを使用するプロジェクトに取り組んでいます。私のカスタム Java コードと Jung ライブラリはすべて wwwroot/WEB-INF/lib の下に配置されています。
JUNG の特定のクラスは、同じフォルダー (デフォルトで CF によって与えられる) にも存在する Apache commons-collections.jar に依存することに注意してください。
問題
CF7 から CF10 への移行を計画しているため、プロジェクト内のすべてのコードでパイロット テストを行っているところ、特定のコード (JUNG を使用するコード) が「クラスが見つかりません」という例外で失敗することがわかりました。
CF 10 で指定されたcommons-collections-2.1.jarのメソッドをデバッグおよびチェックすると、CF 7 に存在するものとは異なることがわかりました。JAR を最新の commons-collections-3.2.1 バージョンに更新すると、必要なすべてのクラスが見つかったため、コードは正常に機能します。
デフォルトのcommons-collections-2.1.jarに合わせてコード ベースを変更できますが、その場合、開発とテストのサイクルに少なくとも 2 ~ 3 か月かかります。最後の選択肢として、できれば避けたいと思っています。
さて、私の質問は -
- 2.1 を 3.2.1 に変更 (更新) すると何が問題になりますか?
- この JAR を使用するコア CF の部分は何でしょうか?
- CF がこの古い 2.1 (私はそう感じます) JAR バージョンを使用するのはなぜですか?
私がやった在宅ワーク
テスト: 残りのアプリケーションに影響を与えないように、別のインスタンスを作成し、JAR を最新の 3.2.1 に変更し、その上でアプリケーションをホストし、いくつかのテストを行いました。問題が発生していないので、すべて問題ないようです。しかし、この JAR に依存して壊れる可能性がある CF の領域があるのではないかと心配しています。
cfusion\lib : commons-collections-3.2.1 がメインの lib (cfusion\lib) フォルダーに既に存在することがわかりました。したがって、WEB-INF/lib の JAR を変更しても違いはありません。
cfusion\wwwroot\WEB-INF\lib : このフォルダーに配置されたすべての JAR ファイルはアプリケーションのみに使用され、CF 自体では使用されないことを読みました。間違っているか、意味を完全に誤解している可能性があります。私を正してください!
この Q への回答は、CF の理解を深め、問題を解決するのに役立ちます。