WildFly:2耳的非ejb服务之间可以进行通信吗?

时间:2017-12-11 14:31:39

标签: java java-ee jboss wildfly ear

鉴于我在WildFly实例上部署了2个耳朵。我想在它们之间建立一些沟通。对我来说最舒服的方式是使用一些普通的豆。

'bean'我不是指ejb-bean,因为我不使用ejb。这是一个重要的观点。对我来说最好的选择是Spring bean。

无论如何,Spring bean,或者只是某个Java类的一些实例,我想在两个耳朵的内存中有一个共享实例的某个Java对象,部署在我的WildFly上。

有可能吗? 如果没有,有什么选择?

2 个答案:

答案 0 :(得分:1)

在独立(-full).xml中声明一个队列,两个主题用于双向通信,并让耳朵提交并处理彼此的消息。

答案 1 :(得分:0)

这通常不是我推荐的,因为它紧密地耦合了应用程序。我的一般建议是在应用程序之间使用某种远程处理。

说到这里有几种方法可以做到这一点。首先,您必须确保两个EAR都使用相同的共享类。最简单的方法是将它们移动到JBoss模块并在EAR中声明依赖项。重要的是,课程不在EAR中。然后你不得不注册对象,JNDI和JMX是明显的候选人。

EJB调用也应该是可能的,但适用共享类的相同规则(向EJB添加接口,共享EAR之间的接口,仅通过接口引用EJB)。有各种方法可以让Spring使用EJB,显而易见的是工厂bean。