学校の課題で、JNDIとJMS with Glassfish(3オープンソース版)を使用したNetbeansプロジェクトを受け取りました。このアプリケーションが使用しているすべてのGlassfishライブラリは絶対パスで参照され、他のすべてのライブラリ(「lib」フォルダ内)は相対パスで参照されます。
私のグループはバージョン管理システムを使用しているため、「lib」フォルダーがリポジトリに含まれています。小さなプロジェクトなので、これは問題なく機能します。ただし、私はLinuxユーザーであり、他のユーザーはWindowsユーザーであるため、Glassfishライブラリには問題があります。Netbeansにライブラリパスを処理させることで、この問題を回避しました。
選択したソリューションは「機能します」が、最善のソリューションではありません。Mavenがより良い解決策になると思いました。
ただし、「gf-client」ライブラリには問題があります。Mavenの「gf-client」を使用するたびに、アプリケーションは例外をスローします。
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
どちらのライブラリにもバージョンとして「3.1.2」があります。ライブラリの構造は同じように見え、両方のMANIFEST.MFファイルも同じです。ただし、両方のファイルのサイズとmd5sumは等しくありません。
デフォルトのMavenリポジトリにあるすべての「gf-client」ライブラリを試しましたが、どれも機能しませんでした。他のライブラリは私に問題を与えません。