我正在使用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");
}
}
这是尝试查找我之前decalred的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。谁有任何想法?
感谢, 射线。
答案 0 :(得分:0)
尝试使用
@Stateless(mappedName="OperatorBlockBean")
@Local{ OperatorBlockBeanLocal.class }
public class OperatorBlockBean implements OperatorBlockBeanLocal
您也可以在servlet中使用EJB注入而不进行查找。方法如下:
@EJB OperatorBlockBeanLocal operatorBlockBean;
EJB将被注入,因此您无需进行查找。