2008-09-14 12 views
1

実行可能なjarファイルのマニフェストファイルにクラスパスを設定した単純なスプリングハイバネートアプリケーション(コンソールアプリケーション)があります。そして、アプリケーションは、jtdsドライバを使用してデータベースに接続します.Windowsマシンとjdk1.6ではすべてが期待どおりに動作します。しかし、Linuxでは、アプリケーションはドライバを見つけることができません 私たちは、java -jar MainClassNameを使用してプログラムを実行していますjtdsビルドされたプロジェクトを実行しているときに適切なドライバ例外がありません

これが起こっている可能性があることをご了承ください。

+0

Mavenのバグですか? NoClassDefErrorかClassNotFoundExceptionのいずれかであれば、おそらくクラスパスの問題です。 –

答えて

0

正直なところ、悪いCLASSPATHのようです。この問題のデバッグを開始するには、主なパッケージ/クラスと同じパスにjtdsパッケージをコピーし、それが動作するかどうかを確認することをお勧めします。こうすることで、クラスパスマニフェストが問題であるかどうかを確認できます。 Spring/Hibernateはlibディレクトリに依存しているため、クラスパスは主な構造であるため常にクラスパスになります。 libディレクトリを使ってテストすることもできます。

このガイドラインが役立ちますようお願いいたします。また、パス、クラスパス、マニフェストファイルなど、より多くの情報を送信します。

+0

Fernando、 クラスパスはマニフェストファイルのMavenによって生成され、Windowsマシンで正常に動作します。 とにかく月曜日にマニフェストファイルにclass-pathエントリを投稿します。 –

2

この問題は、jdbc.urlに無効なURLがあるために発生しました。これは、mavenがfilter.propertiesに定義されているurlではなく、jdbc.urlプロパティを特別なプロパティとして処理し、プロファイリング中に処理するためです。そして、それは "No Driver"の例外です。問題はもっとはっきりしていたはずです。

とにかく、jdbc.urlプロパティの名前をjdbc.url.somenameに変更しなければならないことを修正しました。これにより、Mavenプロファイリングの問題が修正されました。また、 "server.name"というプロパティでも同様のmavenプロファイリングの問題がありました。このフィルタプロパティは、mavenプロファイリングも混乱させていました。私たちはその物件の名前も変更しなければなりませんでした。

ありがとうフェルナンド。

関連する問題