鉴于我在WildFly实例上部署了2个耳朵。我想在它们之间建立一些沟通。对我来说最舒服的方式是使用一些普通的豆。
'bean'我不是指ejb-bean,因为我不使用ejb。这是一个重要的观点。对我来说最好的选择是Spring bean。
无论如何,Spring bean,或者只是某个Java类的一些实例,我想在两个耳朵的内存中有一个共享实例的某个Java对象,部署在我的WildFly上。
有可能吗? 如果没有,有什么选择?
答案 0 :(得分:1)
在独立(-full).xml中声明一个队列,两个主题用于双向通信,并让耳朵提交并处理彼此的消息。
答案 1 :(得分:0)
这通常不是我推荐的,因为它紧密地耦合了应用程序。我的一般建议是在应用程序之间使用某种远程处理。
说到这里有几种方法可以做到这一点。首先,您必须确保两个EAR都使用相同的共享类。最简单的方法是将它们移动到JBoss模块并在EAR中声明依赖项。重要的是,课程不在EAR中。然后你不得不注册对象,JNDI和JMX是明显的候选人。
EJB调用也应该是可能的,但适用共享类的相同规则(向EJB添加接口,共享EAR之间的接口,仅通过接口引用EJB)。有各种方法可以让Spring使用EJB,显而易见的是工厂bean。