如何通过 Class<?> InitialContext.lookup EJB 实例

How to InitialContext.lookup instance of EJB by Class<?>

我正在尝试使用 class 类型创建 EJB class。我的函数获取此 class 类型作为参数。这个 class 有它自己的依赖项,我也希望创建这些依赖项。

addToUploadQueue(Class<? extends ICallback> callbackClazz)

如何创建此 class 的 ejb 实例?

编辑:我正在通过 ManagedExecutorService thread.This 将视频上传到 youtube,这是一个通用模块。我希望每个项目都 运行。 Http 请求调用我的函数,我立即创建另一个线程和 return。上传完成后,我需要通知此回调函数以更新数据库上这些视频的状态(或做任何他们想做的事)。

你必须使用 lookup 方法获取一个 ejb 实例,你可以这样做

addToUploadQueue(Class<? extends ICallback> callbackClazz) {
  InitialContext ic = new InitialContext();
  MyEjb myEjb = (MyEjb)ic.lookup("java:comp/env/ejb/" + callbackClazz.getName());
}

鉴于您提供的额外信息,您似乎在尝试重新发明 Observer Pattern

幸运的是,Java EE 6 和更新版本为我们提供了一个 CDI 框架来为我们实现这一点。

Adam Bien 在 JAVA EE 6 OBSERVER PATTERN / EVENTS WITH CDI (JSR-299/JSR-330) AND EJB 3.1 展示了一个例子。