【问题标题】:Call EJB from another domain从另一个域调用 EJB
【发布时间】:2014-11-05 14:26:33
【问题描述】:

我在做什么:
我正在尝试开发一个用于从另一个域调用 EJB 的小程序。

版本
EJB 3.0
WebLogic 10.3.6

Machine1 和 Machine2 上有 2 个域,因此托管服务器是
domain1_cluster1_machine1 domain1_cluster1_machine2
domain2_cluster1_machine1 domain2_cluster1_machine2
(希望我说清楚)

我关注这个博客来开发程序: http://edwin.baculsoft.com/tag/weblogic/

我在域1_cluster1_machine1和域1_cluster1_machine2上部署了EJB,状态为Active,可以在JNDI树中找到。
然后部署客户端应用程序在域2_cluster1_machine1 和域2_cluster1_machine2

所有代码与博客相同,除了提供者网址:

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

当我从域2_cluster1_machine1 运行客户端应用程序时,出现以下异常:

javax.naming.CommunicationException [根异常是 java.rmi.UnmarshalException:解组类失败 java.lang.对象;嵌套异常是: java.lang.ClassNotFoundException: com.edw.ejb3.HelloEJBRemote]

当我在查找中输入错误时,即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'

因此,我是否可以断定客户端能够从 domain1 找到 EJB,因为异常不是 NameNotFoundException

那这有什么问题呢?和安全有关吗?

我是 Weblogic 和 EJB 的新手。您的帮助将不胜感激。谢谢!

【问题讨论】:

  • 客户端应用程序中是否有关联的接口类?说HelloEJBRemote impl 部署在cluster1 上,它的接口HelloEJBRemote 应该是cluster2 部署的一部分吗?
  • 感谢您的评论。我忘记了cluster2中的接口。谢谢! :)
  • 根据您的评论,我正在回答您的问题

标签: ejb-3.0 weblogic11g


【解决方案1】:

如 cmets 中所述,请确保您已部署 EJB,如下所述 -

集群 1

  • HelloEJBRemote
  • HelloEJBRemoteImpl

集群 2

  • HelloEJBRemote

使用 HelloEJBRemoteImpl 的 JNDI 名称从 Cluster2Cluster 1 查找 Bean

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-20
    • 2023-03-22
    • 2014-08-23
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多