【发布时间】:2017-06-26 12:57:02
【问题描述】:
我有一个简单的远程接口:
@Remote
public interface MainDaoEJBRemote {
void sayHelloRemote();
}
我有一个实现我的接口的Stateless EJB:
@Stateless(mappedName = "MainDaoEJB")
@Remote
public class MainDaoEJB implements MainDaoEJBRemote {
@Override
public void sayHelloRemote() {
System.out.println("remote invoked...");
}
}
我已将其部署到 weblogic 服务器。
我有一个ManagedBean,我正在尝试查找远程EJB 这是我的查找部分:
public void sayHello() throws NamingException {
System.out.println("invoked...");
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial",
"weblogic.jndi.WLInitialContextFactory");
env.put("java.naming.provider.url", "t3://127.0.0.1:7001");
env.put("java.naming.security.principal", "user");
env.put("java.naming.security.credentials", "pass");
Context ctx = new InitialContext(env);
try {
MainDaoEJBRemote mainDaoEJB
= (MainDaoEJBRemote) ctx.lookup("MainDaoEJB");
System.out.println("invoked... " + mainDaoEJB.toString());
mainDaoEJB.sayHelloRemote();
} catch (NamingException e) {
System.out.println("NamingException: " + e.getMessage());
} finally {
try {
ctx.close();
} catch (Exception e) {
System.out.println("Exception: " + e.getMessage());
}
}
}
当我尝试在 managedBean 上调用我的 sayHello() 方法时,它会抛出 NamingException: Unable to resolve 'MainDaoEJB'。已解决''
你能告诉我如何正确查找我的遥控器EJB吗?我应该设置我的EJB 的JNDI 名称吗?
【问题讨论】:
标签: java jakarta-ee weblogic