2013-06-05 133 views
2

我正在爲Netbeans的學校製作一個小型網上商店應用程序。我在EJB模塊中有一個Customer實體類以及一個本地會話bean和一個遠程會話bean。從獨立的Web應用程序調用ejb實體類(netbeans)

接下來我有一個獨立的web應用程序,當然可以調用遠程會話bean。

從應用程序中,我可以調用遠程會話bean中的方法給我所有的客戶。但會話bean應該返回什麼?

  • 它可以返回一個客戶列表,但我的應用程序不知道客戶類。我應該在應用程序中添加一個我的ejb模塊的jar嗎?
  • 我可以返回列表中包含客戶的所有信息,但這不是很好。
  • 我已閱讀here關於在Web應用程序中有一個Customer接口,但我不明白這是如何工作的。
  • 它會幫助製作企業應用程序並添加ejb模塊的jar和Web應用程序的戰爭嗎?

什麼是最佳選擇?

(哦,我使用的檢票口作爲框架,如果有什麼與此有關)

編輯:

所以我的設置是這樣的:

  • 包含庫實體類和遠程bean的接口
  • 一個包含遠程bean和實體類外觀的ejb模塊,它也有上面的庫
  • 一個web應用程序:也有庫
  • 一個包含ejb-jar和war的企業應用程序。

雖然它不工作。當我部署耳朵,我得到這個錯誤:

Error in annotation processing: java.lang.NoClassDefFoundError: shop2/database/customer/CustomerBeanRemote 

我不知道在哪裏把持續性文件。現在它在ejb模塊中。但我不認爲這實際上是問題所在。

你能指導我通過如何使項目。這是我第一次使用EJB和Java EE。

謝謝!

回答

1

您必須創建一個包含所有實體和接口的客戶端項目,並在EJB模塊和Web項目中使用此項目。

在這種情況下,你可以通過使用遠程接口

當然回報客戶的名單到Web項目,必須部署EJB項目+在耳朵項目客戶端項目。

+0

所以我把我的接口和我的實體放在一個java庫中而不是客戶端項目中。Web應用程序已經需要該應用程序來了解ejb調用。這是你的意思還是我需要改變什麼? – Kat

+0

雖然這並沒有奏效,但由於持久性不在庫中。我會嘗試客戶端。 – Kat

+0

java庫與客戶端項目相同,我的意思是接口它是你的ejb會話bean的遠程接口,然後當你在web項目中添加這個庫時,你不需要引用ejb項目。在通過聲明遠程接口注入ejb會話bean並使用以下注釋之後:'@EJB(lookup =「JNDI_SESSIONBEAN_NAME」)' –