我使用的是EJB3.0,Weblogic 11g
我正在尝试从 servlet 到 Statelessbean 进行简单的查找并在那里运行一个方法。两者都在同一个 EAR 下。 我用Jboss成功做到了。但我知道在 Weblogic 中有点不同,所以我更改了代码,这就是我正在做的事情,但仍然没有成功:
我声明的接口(interface):
@Local
public interface OperatorBlockBeanLocal
{
public void testme();
}
这是实现接口(interface)的类:
@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。有人有什么想法吗?
谢谢, 射线。
最佳答案
尝试使用
@Stateless(mappedName="OperatorBlockBean")
@Local{ OperatorBlockBeanLocal.class }
public class OperatorBlockBean implements OperatorBlockBeanLocal
您还可以在 servlet 中使用 EJB 注入(inject)而不进行查找。方法如下:
@EJB OperatorBlockBeanLocal operatorBlockBean;
EJB 将被注入(inject),因此您无需进行查找。
关于java - Weblogic中通过注解查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5583585/