【问题标题】:Why cannot find Webligic the JNDI name for an EJB?为什么无法找到 Webligic 的 EJB 的 JNDI 名称?
【发布时间】:2014-01-27 14:53:45
【问题描述】:

我有一个 EAR 文件,结构显示里面的 EJB

project-ear
        |-----project-business.jar
                        |-----SupervisorProcesserBean(class) (@Stateless)
                        |-----SupervisorProcesserBeanLocal(interface) (@Local)
        |-----project-dao.jar
                        |-----SupervisorDAOImpl(class) (@Stateless)
                        |-----SupervisorDAOLocal(interface) (@Local)

这是我的 SupervisorDAOImpl bean:

@Stateless
public class SupervisorDAOImpl implements SupervisorDAOLocal {
    @Override
    public void doSomething() {
        //do something
    }
}

使用它的 SupervisorDAOLocal 界面:

@Local
public interface SupervisorDAOLocal {
    public void doSomething();
}

还有我的 SupervisorProcesserBean bean:

@Stateless
public class SupervisorProcesserBean implements SupervisorProcesserBeanLocal {
    @EJB
    private SupervisorDAOLocal supervisorDao;
    ....
}

使用它的 SupervisorProcesserBeanLocal 接口:

@Local
public interface SupervisorProcesserBeanLocal {
    ....
}

你可以看到,我想将 SupervisorDAOLocal 注入到 SupervisorProcesserBean。 当我想将其部署到 weblogic 时,我收到此错误:

Error resolving ejb-ref "com.viktor.business.SupervisorProcesserBean/supervisorDAO" 
from module "project-war-1.0.0-SNAPSHOT.war" of application "project-ear-1.0.0-SNAPSHOT". 
The ejb-ref does not have an ejb-link and the JNDI name of the target Bean has not been specified.

怎么可能?两个 bean 都有一个本地接口。

【问题讨论】:

标签: maven ejb weblogic javabeans jndi


【解决方案1】:

JNDI 名称是使用您似乎没有的远程接口名称构建的。将@Local注解改为@Remote,然后重试。

【讨论】:

    猜你喜欢
    • 2016-04-09
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多