0

動的 Web プロジェクトで使用する JPA プロジェクトを作成しました。

この JPA プロジェクトから jar を作成し、動的 ​​Web プロジェクトの lib フォルダーに追加しました。次に、これを動的 Web プロジェクトのビルドパスに追加し、[注文とエクスポート] タブにもチェックを入れました。

最初の質問: これらのオプションを使用して、通常の jar へのエクスポートで jar ファイルを作成しました。

ここに画像の説明を入力

これらは大丈夫ですか、それとも何か追加する必要がありますか。

2 番目の質問: この jar をビルドパスに追加し、この jar 内のクラスのインスタンスを使用した後、それをインポートに追加できます。クラスは認識されているため、エラーは表示されません。

クラスを使用する JSP とサーブレットを実行しようとすると、Apache でjava.lang.NoClassDefFoundErrorエラーが発生し、クラスを使用する行に java.lang.ClassNotfoundEception が表示されます。したがって、何らかの理由で、実行時にクラスが見つかりません。

さまざまなオプションで何度も瓶を作ろうとしました。必要なクラスを別の方法 (ctrl-T) でインポートしようとしましたが、1 つのクラスしか表示されません。

私が奇妙だと思う唯一のことは、インポートの見た目です。私のJPAプロジェクトでは、次のようなパッケージ構造を持っています:

be.JPA.project6

私の動的Webプロジェクトでは、次のようなパッケージ構造を持っています:

be.project6

インポートを見ると、be.JPA.project6.data.classnameが表示されます

「通常の」パッケージ構造の外で検索する必要があることを彼が知ることができるように、別の構造を期待します。しかし、「ctrl-T」でもこのクラスしか見ることができません

他のプロジェクトへの参照はしたくありませんが、jar でこのように使用します。

現時点では手がかりがないので、アドバイスは大歓迎です。

4

1 に答える 1

1

ビルド パスとは、ビルド パスです。アプリケーションのビルドに使用されるパス。

Web アプリケーションのランタイムクラスパスは、WEB-INF/class ディレクトリと、WEB-INF/lib.

動的 Web プロジェクトのビルド パスから jar を削除します。WebContent/WEB-INF/libディレクトリにドロップするだけです。Eclipse は、このディレクトリ内のすべての jar をビルド パスに自動的に追加し、それらをデプロイされWEB-INF/libた Web アプリケーションのディレクトリに配置して、ランタイム クラスパスの一部にもします。

于 2013-03-03T10:03:09.040 に答える