2012-04-11 11 views
3

学校の割り当てのために、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ファイル内のクラスを参照している:

答えて

9

は私のpom.xmlにこれを追加することによって、それを解決することができました。行方不明の最初のクラスはおそらくjava.naming.factory.initialでした。しかし、これを修正した後、それでもまだ他のクラスが必要でした。一番簡単な方法は、glassfish-embedded-allの依存関係を追加することでした。

関連する問題