2

単純な [spring-hibernate] アプリケーション (コンソール アプリ) があり、実行可能 JAR ファイルのマニフェスト ファイルにクラスパスを設定しています。アプリは jTDS JDBC ドライバーを使用してデータベースに接続します。Windows マシンと JDK 1.6 ではすべてが期待どおりに動作しますが、Linux では、アプリはドライバーを見つけることができません。java -jar MainClassName を使用してプログラムを実行しています。

なぜこれが起こっているのかについての提案は大歓迎です。

4

3 に答える 3

3

この問題は、jdbc.url に無効な URL があったために発生しました。これは、maven が jdbc.url プロパティを特別なプロパティとして扱い、プロファイリング中に、filter.properties で定義された url の代わりに扱うためです。そして、それが「適切なドライバーがありません」例外の理由です。質問はもっと明確であるべきでした。

とにかく、jdbc.url プロパティの名前を jdbc.url.somename に変更する必要があったことを修正します。これにより、Maven プロファイリングに関する問題が修正されました。また、「server.name」という名前のプロパティについても、同様の Maven プロファイリングの問題がありました。このフィルター プロパティも、Maven プロファイリングを混乱させていました。そのプロパティの名前も変更する必要がありました。

再びフェルナンドに感謝します。

于 2008-09-20T00:40:09.397 に答える
0

これは Maven のバグです http://jira.codehaus.org/browse/MNG-3563

于 2009-09-07T11:50:57.973 に答える
0

正直なところ、それは悪い CLASSPATH のように聞こえます。この問題のデバッグを開始するために私が提案することの 1 つは、jtds パッケージをメインのパッケージ/クラスと同じパスにコピーし、それが機能するかどうかを確認することです。このようにして、クラスパス マニフェストに問題があるかどうかを確認できます。Spring/Hibernate は lib ディレクトリに依存しているため、メイン構造であるため、常にクラスパス上にあります。lib ディレクトリもテストに使用します。

このガイドラインがお役に立てば幸いです。パス、クラスパス、マニフェスト ファイルなどの詳細情報も送信します。

于 2008-09-14T09:23:26.580 に答える