jboss - EJB 到 SEAM 组件(不同的项目和相同的 JBoss)

标签 jboss ejb-3.0 seam

我有以下设置:

JBoss 4.2.3
在那之下我有:

 
--> Project A  (Which is not SEAM 2.1.2GA based)
    EJBs:
       * beanA (JNDI = beanA/remote)
       * beanB (JNDI = beanB/remote)

--> Project B  (SEAM based)
    EJBs / Components:
       * ComponentX
       * ComponentY

On component X I have the current piece of code:

@Scope(ScopeType.CONVERSATION)
@Name("ComponentX")
public class ComponentX implements java.io.Serializable { 
...
@EJB
beanAInterface beanA;
....
public foo(){
    beanA.bar();  // <--------- beanA is null, even with mapped name and etc., only works
                  //            if I direct lookup with Context().lookup("beanA/remote")
}

关于如何解决这个问题有什么想法吗?

最佳答案

您的 ComponentX 类不是 EJB,因此您不能使用 @EJB 注释来注入(inject)它们。你有几个选择。将您的 ComponentX 转换为 EJB,添加 @Stateless 或 @Statefull 和一个接口(interface) @Local 或 @Remote,这样 AS 就会注意到 ComponentX 是一个 EJB,并且知道如何处理所需的注入(inject)。另一种选择是让 ComponentX 只是一个组件,并使用 InitialContext#lookup 手动获取对“beanA/remote”的引用。

关于jboss - EJB 到 SEAM 组件(不同的项目和相同的 JBoss),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1602931/

相关文章:

java - 从 JNDI 查找对象引用会导致 ClassCastException

java - Jersey 测试框架: Test Container is null

java - 无状态 session Bean 可以保护 final方法吗?

java下载word文档,内容显示为十六进制

java - 基于带有参数的函数的 SEAM 导航

java - 在 Seam 中的事务提交时捕获异常

java - 如何在 JBOSS AS 启动时查找特定服务是否运行/启动?

authentication - 使用简单的 Java 代码获取当前用户 Liferay

mysql - 在 JBoss 4.2.3 上运行时删除 MySQL 数据库

java ejb3 @PostConstruct