1

我正在使用 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。有人知道吗?

谢谢,雷。

4

1 回答 1

0

尝试使用

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

您还可以在您的 servlet 中使用 EJB 注入而不进行查找。就是这样:

@EJB OperatorBlockBeanLocal operatorBlockBean;

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

于 2011-04-07T15:40:18.330 回答