【问题标题】:Lookup via Annotation in Weblogic通过 Weblogic 中的注解查找
【发布时间】:2011-04-07 15:27:09
【问题描述】:

我正在使用 EJB3.0,Weblogic 11g

我正在尝试从 servlet 到 Statelessbean 进行简单的查找并在那里运行一个方法。都在同一个 EAR 下。 我设法用Jboss做到了。但我知道在 Weblogic 中它有点不同,所以我改变了我的代码,这就是我正在做的,但仍然没有成功:

我声明的接口:

 @Local
 public interface OperatorBlockBeanLocal
 {
    public void testme();

 }

这是实现接口的类:

@Stateless
@Local{ OperatorBlockBeanLocal.class })


@JNDIName(value = "OperatorBlockBean")


 public class OperatorBlockBean implements OperatorBlockBeanLocal
 {
    public void testme()
 {
    System.out.println("OperatorBlockBean");
 }
 }

这是试图查找我之前贴花的 bean 的 servlet:

try
    {
        context = new InitialContext();

        operatorBlockBean = (OperatorBlockBeanLocal) context
                .lookup("java:comp/env/OperatorBlockBean");
        operatorBlockBean.testme();
    } catch (NamingException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

当然,我得到了 NamingException。有人知道吗?

谢谢, 射线。

【问题讨论】:

    标签: java annotations ejb-3.0 weblogic weblogic11g


    【解决方案1】:

    尝试使用

    @Stateless(mappedName="OperatorBlockBean")
    @Local{ OperatorBlockBeanLocal.class }
    public class OperatorBlockBean implements OperatorBlockBeanLocal
    

    您也可以在您的 servlet 中使用 EJB 注入而不进行查找。方法如下:

    @EJB OperatorBlockBeanLocal operatorBlockBean;
    

    EJB 将被注入,因此您不必进行查找。

    【讨论】:

    • 我的查找地址对吗?因为它不适用于循环。这是错误:尝试在 /app/webapp/SBNWeb/10178340 中查找 comp/env/OperatorBlockBean。;剩余名称 'comp/env/OperatorBlockBean'
    • 现在我必须进行查找,因为我在容器之外。知道怎么做吗?
    猜你喜欢
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 2011-04-06
    • 2013-11-14
    • 2015-08-24
    相关资源
    最近更新 更多