首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用没有可用接口类的远程EJB3

调用没有可用接口类的远程EJB3
EN

Stack Overflow用户
提问于 2010-01-04 04:37:12
回答 1查看 1.2K关注 0票数 2

当从另一个EJB3模块调用远程JNDI (Glassfish)时,通常会有可用的接口,它们被包含在JAR文件中,这样当您执行JNDI查找时,一切都会按预期工作。

我遇到过这样一种情况: JNDI名称是在运行时确定的,我尝试以通常的方式访问从EJB3检索到的EJB3失败了,容器报告远程接口类的ClassNotFound。这对我来说很奇怪,因为所有接口类都扩展了一个父接口,而我在调用EJB模块时确实对该接口有依赖关系,即:

IParent ejbRef = (IParent) JndiLocator.getObject("jndinameRemote");

在我的JAR中不需要确切的远程EJB3接口字节码的情况下,这可以实现吗?

家伙

EN

回答 1

Stack Overflow用户

发布于 2018-03-24 20:06:08

即使我完全不确定上面的设置是什么,我也同样需要在编译时不知道客户端jars的情况下尝试调用EJB,事实上,我也无法知道EJB部署在什么应用程序服务上。

我已经设法通过编写定制的类加载器来做到这一点,这里的问题是,反过来试图调用EJB的类必须自己使用定制的类加载器加载,以及所有必要的jar,即具有接口和模型的客户端jar以及特定于应用服务器的客户端jar。我将所有上下文属性作为输入传递给我的调用程序类,以初始化上下文工厂并调用bean。

这些是实现这一目标的高级步骤

使用方法invokeEJB创建类Ejb,您可以向它传递一对带有属性的映射,用于准备上下文和EJBInvoker接口、方法、参数类、值和输出类。使用反射来创建InitialContextFactory的实例以及Bean对象、参数和方法调用。将上述类添加到单独的jar文件中,并使用自定义的类加载器从外部项目调用具有所需属性的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1996211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档