gpt4 book ai didi

Java EE | ejb3 |运行时调度

转载 作者:太空宇宙 更新时间:2023-11-04 09:01:25 25 4
gpt4 key购买 nike

我想在运行时调用 ejb3。 ejb 的名称和方法名称仅在运行时可用,因此我无法在编译时包含任何远程接口(interface)。

String bean = 'some/Bean';
String meth = 'doStuff';

//lookup the bean
Object remoteInterface = (Object) new InitialContext().lookup(bean);

//search the method ..
// foreach (methods)
// if method == meth, method.invoke(bean);

bean 应该分布在多个应用程序服务器上,并且所有 bean 都将被远程调用。

有什么提示吗?具体来说,我想要:

  1. 依赖注入(inject)
  2. 在调度程序中包含应用程序特定的 ejb 接口(interface)(见上文)
  3. 网络服务,这就像白白扔掉处理能力,所有的 xml 废话

是否可以通过网络加载 ejb3 远程接口(interface)(如果是,如何加载?),这样我就可以将接口(interface)缓存在某些 HashMap 或其他内容中。

我有一个带有远程调度程序 bean 的解决方案,我可以将其包含在上面的主调度程序中,它的作用本质上相同,但只是将调用中继到本地 ejb(我可以如何查找?命名查找失败)。给定远程调度程序 bean,我可以使用依赖项注入(inject)。

感谢您的帮助

(netbeans 和 glassfish 顺便说一下)

最佳答案

ejb3 调用使用 RMI。 RMI 支持远程类加载,因此我建议研究一下。

此外,JMX mbean 支持完全无类型的远程调用。因此,如果您可以使用 mbean 而不是 session bean,那就可以了。 (例如,JBoss 支持带有一些自定义注释的类似 ejb3 的 mbean)。

最后,许多应用服务器支持 CORBA 调用,并且 CORBA 支持非类型化方法调用。

关于Java EE | ejb3 |运行时调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/275540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com