代码之家  ›  专栏  ›  技术社区  ›  javatar

通过使用EJB3、JSF和JBoss,是否可以从Web模块调用EJB方法?

  •  0
  • javatar  · 技术社区  · 15 年前

    即使在我的JavaEE应用程序中有不同的模块,包括MyStudio Web和MyStudio EJB,是否有可能从Web模块中的托管bean调用(或注入)EJB模块中的EJB会话bean? 当我问之前,我看到以下声明:

    @EJB private BeanInterface yourbean
    

    但是,我想知道在不同的上下文之间(其中一个在EJB上下文中,另一个在Web上下文中)调用对方是否可能?

    任何帮助都将不胜感激。

    3 回复  |  直到 12 年前
        1
  •  1
  •   BalusC    13 年前

    你可以注射 @EJB 在一个 @ManagedBean 上课,但不是反过来。如果您想在EJB类中执行所需的业务逻辑,那么您必须自己将托管bean实例作为方法参数传递。

    @Stateless
    public class EJB {
        public void process(ManagedBean bean) {
            // Business logic.
        }
    }
    
    @ManagedBean
    public class ManagedBean {
        @EJB private EJB ejb;
    
        public void submit() {
            ejb.process(this);
        }
    }
    
        2
  •  0
  •   codeplay    14 年前

    如果你真的想这样做,我想你可以尝试写你自己的属性解析器,然后自己注入(我没有尝试)。

        3
  •  -1
  •   javatar    13 年前

    我发现现在不写你自己的分解器是不可能的。谢谢