0

まず、私のプロジェクトの構造を少し入力します。

これは、次の 3 つのモジュールで構成される Web ショップ プロジェクトです。

  • EJB
  • リモート デスクトップ クライアント
  • ウェブクライアント

関連する NetBeans プロジェクトは全部で 6 つあります。

  1. すべてのモジュールを含むメイン EE プロジェクト。
  2. EJB モジュール プロジェクト
  3. Web クライアント モジュール プロジェクト
  4. リモート クライアント モジュール プロジェクト
  5. EJB リモート インターフェイスのクラス ライブラリ プロジェクト
  6. エンティティ クラスの「単純化された」形式であるクラスを含むクラス ライブラリ プロジェクト。これらは、元は EJB モジュール プロジェクトに配置されていました。元のエンティティ クラスの代わりにこれらのクラスを使用することにした理由は、リモート クライアント アプリケーションに配布するときに、それらのクラスをシリアライズ/デシリアライズする際に問題があったためです。

ここで、これらのプロジェクトが互いにどのように接続されているかを説明します (上記のリストを参照して)。

  • EJB プロジェクトには #5 と #6 への参照が含まれています
  • Web クライアント プロジェクトには #2 への参照が含まれています
  • リモート クライアント プロジェクトには、#2、#5、および #6 への参照が含まれています
  • EJB リモート インターフェイス プロジェクトには #6 への参照が含まれています

したがって、基本的に、すべてのプロジェクト (Web モジュールを除く) には、単純化された、または「カプセル化された」形式のエンティティ クラスを含むプロジェクトへの参照が含まれています。

この EE アプリケーション (メインの EE プロジェクト) を GlassFish (v 4.0) にデプロイしようとすると、プロジェクト #6 で定義されているクラスがプロジェクト #5 に表示されないというエラーが発生し続けます。プロジェクト #5 のリモート インターフェイスで使用される、プロジェクト #6 で定義されたこの「製品」クラスが 1 つあります。コードの書き込み中に、参照が正しく配置されているため、この問題に関するエラーは発生しませんでした。また、メインの EE プロジェクトのクリーンアップとビルドは正常に完了しますが、デプロイ時に同じエラーが発生し続けます。

package musicshop.entity.encapsulated does not exist
import musicshop.entity.encapsulated.Product;

注:musicshop.entity.encapsulatedその「製品」クラスを含むプロジェクト #6 のパッケージです。また、これimport musicshop.entity.encapsulated.Product;はプロジェクト #5 の 1 つのリモート インターフェイスからの行です。

また、GlassFish からアプリケーションをアンデプロイして再デプロイしようとするまで、すべてが正常に機能していたという事実に言及することも重要です。

4

1 に答える 1

0

この問題の解決策を見つけることができたことを嬉しく思います。きれいではありませんが、別の方法が見つかるまでは目的を果たします。

私が発見したことは、GlassFish にデプロイできるクラス ライブラリ プロジェクトは 1 つだけであるということです。以前は、そのようなプロジェクトは 1 つしかありませんでした。それは、EJB リモート インターフェースを保持するプロジェクトです。しかし、これらの簡略化されたバージョンのエンティティ クラスを保持する別のクラス ライブラリ プロジェクトを作成したとき (これらのクラスをすべて 1 か所に保持し、必要な場所にインポートするために作成しました。そのようにしたい場合は、いくつかの編集を行います。一度だけ行う必要があります。)

したがって、私がしなければならなかったことは、その追加のクラス ライブラリ プロジェクトを削除し、それらのクラスを必要な場所にコピーするだけでした。今、私はそれらを他のプロジェクトに分散させました。これにより、それらを維持するのが難しくなりますが、サーバーに展開する問題は解決しました.

そうした後、私はすでに似たようなことを一度試みたことを思い出します-使用が必要な場所にインポートされる何かを含む追加のクラスライブラリプロジェクトを作成し、GlassFish にアプリケーションをデプロイするときに同じエラーが発生しました。当然、私はこの問題と同じ方法でその問題を解決しました。では、なぜ複数のクラス ライブラリ プロジェクトを展開できないのか疑問に思っています。何か案は?

于 2013-10-22T13:54:43.247 に答える