長年のリスナー、初めての発信者。
BEA WebLogic 10 から GlassFish v3 に移行中です。大規模なプロジェクトを GlassFish に移行することに成功し、すべてが機能していますが、現在は将来の計画を立てています。
具体的には、EAR ファイルを生成する単一のエンタープライズ アプリケーション プロジェクト (DCMHub) と、EAR に入る単一の Web アプリケーション プロジェクト (DCMWeb) で MyEclipse 8.5 を使用しています。
ただし、DCMWeb は実際には、jsps、クラス ファイル、および jar の巨大なねばねばした混乱にまとめられた一連の関連アプリケーションです。私たちがやりたいのは、それらを論理単位に分割することです。たとえば、Web アプリケーション (DCMWeb) を 1 つだけ持つのではなく、DCMWeb_A、DCMWeb_B、DCMWeb_C などの複数の Web サービスと、いくつかの Web サービス (DCMWebService_A、DCMWebService_B) などを使用する必要があります。(明らかに、これらの特定の名前は使用しません。質問を簡単にするために、そのように呼んでいます。)
ここでトリッキーなビットが来ます。これらの Web アプリケーションと Web サービスはすべて、いくつかの共通機能を共有します。たとえば、シングル サインオンが必要なので、ユーザー、認証、およびアクセス許可の概念は同じである必要があります。同様に、ユーザーが所属している部署や勤務先のオフィスなど、特定のクラスを共有したいと考えています。
これが単純な古い Java アプリケーションである場合、DCMWeb_A、DCMWeb_B、DCMWeb_C、DCMWebService_A、DCMWebService_B などのプレゼンテーション用の jar の束と、共有クラスおよびビジネス ロジック用のいくつかの追加の jar (CommonClasses.jar など) を作成する可能性があります。 、UserAndDeskLogic.jar など。
しかし、これは単純な古い Java アプリケーションではありません。これはエンタープライズ アプリケーションであり、a) 醜いプロジェクトから美しいプロジェクトへの移行を簡単な手順で簡単に行うことができるように構造化したいと考えています。 Java EE 6 の「正しい」方法に完全に準拠しているため、Java、GlassFish、および MyEclipse の最新機能が利用可能になったときにそれを利用できます。
現在、MyEclpse 8.5 に含まれているものの大まかな構造は次のとおりです。
DCMHub (エンタープライズ アプリケーション)
META-INF
application.xml
MANIFEST.MF
DCMWeb (Web アプリケーション)
src (すべての java ソース ファイル)
WebContent
css (すべてのスタイル ファイル)
画像 (すべての .jpg、.gif など)
include (すべての jsp フラグメント)
javascript (すべての .js ファイル)
META -INF
MANIFEST.MF
セキュア (表示するために認証が必要なすべての jsps)
WEB-INF
クラス
lib
tlds
applicationContext.xml
dcmweb-servlet.xml
faces-config.xml
log4j.properties
log4j.xml
oscache.properties
sun-jaxws.xml
sun-web .xml
web.xml
xmlhttp
login.jsp (認証されていないユーザーのログイン ページ)
明らかに、ビジネス ロジックの一部をカプセル化するために使用することを考えているものの 1 つは、EJB 3 の使用です。しかし、どうやってそれらを紹介しますか?私の以前の試みはすべて失敗しました。MyEclipse でそれらを EAR の一部としてデプロイできないか、Web アプリケーション プロジェクトで EJB プロジェクトのクラスを「認識」できないことがよくあります。(奇妙なことに、それらに対して Goto-Definition を実行できますが、MyEclipse は依然としてエラーとしてマークします。)
非常に長々とした質問で申し訳ありませんが、このアプリケーションを整理して、現在取り組んでいるものを壊さずに前進できるようにする最善の方法は何ですか?
どうもありがとう!
Jeff G
PS私はEJBをロードしてMyEclipseプロジェクトを参照することができたので、その部分は解決しました。しかし、私はまだ大きな問題を抱えています。つまり、前進するための最良の方法は何ですか?