2014-11-05 41 views
0

我在做什麼:
我想開發一個小程序來調用另一個域的EJB。從另一個域調用EJB

版本
EJB 3.0
的Weblogic 10.3.6

有2個域上MACHINE1和機器2,因此管理服務器
domain1_cluster1_machine1 domain1_cluster1_machine2
domain2_cluster1_machine1 domain2_cluster1_machine2
(希望我使它清除)

我跟着這個博客開發在PROG: http://edwin.baculsoft.com/tag/weblogic/

我部署在域 _cluster1_machine1和域 _cluster1_machine2與Active狀態的EJB,它可以在JNDI樹中找到。
然後客戶端應用程序部署在域 _cluster1_machine1和域 _cluster1_machine2

所有的代碼是一樣的博客,除了提供網址:

t3://[IP of Machine1]:[Listen port of domain**1**_cluster1_machine1] 

當我運行來自域的客戶端應用程序 _cluster1_machine1,我得到以下例外:

javax.naming.CommunicationException [根異常是 java.rmi.UnmarshalException:未能解組類 java.lang.Object;嵌套的異常是: 拋出java.lang.ClassNotFoundException:com.edw.ejb3.HelloEJBRemote]

當I型錯在查找即ic.lookup("com.edw.ejb3.HelloEJBRemote"),例外的是:

javax.naming中。 NameNotFoundException:嘗試查找時 'com.edw.ejb3.HelloEJBRemote'未找到子上下文'com'。已解決 '[根異常是javax.naming.NameNotFoundException:嘗試使用 查找'com.edw.ejb3.HelloEJBRemote'未找到子上下文'com'。 已解決''];剩餘名稱「COM/EDW/EJB3/HelloEJBRemote」

因此,我可以斷定的是,客戶端能夠找到域1的EJB作爲例外不NameNotFoundException

那麼這有什麼不對?它與安全有關嗎?

我是Weblogic和EJB的新手。您的幫助將不勝感激。謝謝!

+0

Bean的仰望Cluster 1你有沒有在相關的接口類客戶端應用程序?比如'HelloEJBRemote' impl部署在cluster1上,其接口'HelloEJBRemote'應該部署cluster2部分? – Patton 2014-11-09 12:24:53

+0

謝謝你的評論。我忘記了cluster2中的接口。謝謝! :) – Janice 2014-11-11 01:41:30

+0

根據您的評論我回答你的問題 – Patton 2014-11-11 10:07:16

回答

0

正如在評論中提到,請確保已部署的EJB像下面描述的 -

集羣1

  • HelloEJBRemote
  • HelloEJBRemoteImpl

集羣2

  • HelloEJBRemote

做一個從Cluster2使用JNDI名稱HelloEJBRemoteImpl