学校の割り当てのために、Glassfish(3つのオープンソース版)でJNDIとJMSを使用してNetbeansプロジェクトを受け取りました。このアプリケーションが使用しているすべてのGlassfishライブラリは絶対パスで参照され、他のすべてのライブラリ( "lib"フォルダ内)は相対パスで参照されます。Glassfishアプリケーションがmavenライブラリ(gf-client)で動作しない
私のグループはバージョン管理システムで動作しているので、 "lib"フォルダはリポジトリに含まれています。これは小さなプロジェクトなのでうまくいきます。しかし、Glassfishライブラリは、私がLinuxユーザーであり、他のユーザーがWindowsユーザーであるため、問題があります。私たちは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"ライブラリを試しましたが、どれもうまくいきませんでした。他のライブラリは私に問題をもたらしません。
<dependency>
<groupId>org.glassfish.main.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.1.2</version>
</dependency>
GF-クライアントJARは、他のjarファイル内のクラスを参照している: