首先是我的項目結構的一點輸入。NetBeans中的Java EE 6項目部署錯誤7.3.1
這是一個網上商店的項目,由三個模塊組成:
- EJB
- 遠程桌面客戶端
- Web客戶端
總共有六個的NetBeans項目涉及:
- 主要的EE項目其中包含所有模塊。
- EJB模塊項目
- Web客戶端模塊項目
- 遠程客戶端模塊項目
- 類庫爲EJB遠程接口項目 包含的實體類的「簡化」形式的類
- 類庫項目,它們最初位於EJB模塊項目中。我決定使用這些類而不是原始實體類的原因是因爲我在分發到遠程客戶端應用程序時序列化/反序列化時遇到了一些問題。
現在,我將介紹如何在這些項目相互連接(通過上面指的他們的名單):
- EJB項目包含#5,#參考6
- Web客戶端項目包含參考#2
- 遠程客戶項目包含對#2的引用,#5和#6
- EJB遠程接口項目包含參考至#6
所以基本上,所有項目(除了Web模塊)都包含對包含簡化或「封裝」形式的實體類的項目的引用。
當我嘗試將此EE應用程序(主EE項目)部署到GlassFish(v 4.0)時,我不斷收到項目#5中未顯示項目#6中定義的類的錯誤。項目#6中定義了這一個「產品」類,該項目用於項目#5的遠程接口。 Durring代碼寫入,我沒有得到關於這個問題的任何錯誤,因爲參考文件被正確放置。此外,主EE項目的清理和構建成功完成,但是在部署的時候,我仍然不斷收到同樣的錯誤:
package musicshop.entity.encapsulated does not exist
import musicshop.entity.encapsulated.Product;
注:musicshop.entity.encapsulated
是從包含「產品」類項目#6包。另外,這個import musicshop.entity.encapsulated.Product;
是來自項目#5的那個遠程接口的線路。
此外,重要的是要提到事實,整個事情工作正常,直到我從GlassFish取消部署應用程序並嘗試重新部署它。