我需要访问部署在 JBoss AS 6 中的 EJB,但我使用的是 JBoss AS 7.1.1 Final,它放弃了 JNP 查找。
是否可以这样做,或者我需要降级到 JBoss AS 6(升级其他服务器是不可能的)?
我已经挖掘了 AS 7 论坛和 SO,但没有找到任何参考资料。
提前致谢!
一般来说,两个不同服务器之间的 EJB 远程通信永远不会起作用。
JBoss 以完全不关注兼容性而著称。即使是版本上的微小差异(例如次要的安全更新)也足以破坏兼容性。我知道 JBoss AS 5 和 6 之间的 EJB 远程处理不起作用,而且我很确定它在 6 和 7 之间不起作用。
问题的根源在于 Java EE 从未指定应该如何进行远程 bean 发现以及对客户端的具体要求是什么(一个例外是应用程序客户端容器,它只在 Java SE 中工作,并且非常神秘,几乎没有人使用它)。
大多数供应商使用某种客户端 jar,在 Jboss 的情况下它几乎是整个服务器。因为它几乎是整个服务器,所以您不能将它包含在另一台服务器中,因为数百甚至数千个类都会发生冲突。
一位 Jboss 员工曾经开始使用隔离类加载器进行实验,该类加载器将加载与主服务器隔离的这些客户端库,但据我所知,没有人能做到这一点。