我一直試圖弄清楚這一點,現在決定問你的意見。EAR與多個戰爭或與遠程EJB的戰爭
我正在構建幾個共享一組通用數據和操作的應用程序。每個應用程序都有特定的數據添加,但需要對特定應用程序以「基礎」或「固定」網絡應用程序形式提供的共享數據進行「鳥瞰」。特定應用程序的數量(可能)爲20+,其中一些只是暫時的(例如4-6個月)。
當我剛開始使用這個項目(並在Java EE中)時,我創建了一個EAR,將共享的JPA實體和EJB放入EJB項目中,並在我添加時添加了WAR。我使用繼承來爲每個應用程序添加特定的數據。我很快就遇到了麻煩,因爲我無法繼承實體以處理不同的EJB項目,所以我最終得到了一個包含所有實體的大型EJB項目和一個帶有表名前綴以標識應用程序的字符串的數據庫:a我不喜歡的情況。此外,項目變得越大,錯誤消息在開發過程中變得越來越重要,必須刪除所有構建和遠程設備,並且從頭開始重新構建所有內容變得令人厭煩(NetBeans 7)。
因此,隨着時間的推移,我決定放棄EAR和繼承,並切換到單獨的WAR並使用遠程EJB來管理共享數據。通過本地EJB調用遠程EJB並將共享數據添加到本地定義的實體,從而實現所有意圖和目的,它看起來像共享數據是本地實體的一部分,實現了耦合web-app - >鳥瞰圖。我對此並不滿意,因爲它似乎由於某種原因過於鬆散地定義,並且存在對性能增加懲罰的問題(目前這不算太壞,但可能會及時)。
我可以去兩者的組合(回到EAR並將遠程EJB切換到本地,但繼承),但它回到了一個不穩定的開發環境。此外,其中一個應用程序的一個小變化意味着必須部署所有東西。不知何故,我認爲這會在某一天導致麻煩(例如,當時打破1但20+應用程序..)
你會怎麼做,爲什麼?任何人對於規模相當的項目都有經驗,並且在開發過程中是如何進行的(即隨着項目的發展,遇到任何問題)?
謝謝!
您應該能夠獲得實體的繼承以在不同的實體EJB項目上工作。不明白你遇到了什麼麻煩? – basav 2012-03-12 06:48:09
我遇到了與[this]相同的問題(http:// stackoverflow。com/questions/8372175/how-to-use-entity-attribute-when-inheritance-is-across-separate-jar)post – 2012-03-12 09:15:57