gpt4 book ai didi

java - weblogic 上的 EJB 远程 JNDI 绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-04 11:22:28 24 4
gpt4 key购买 nike

我有一个简单的远程接口(interface):

@Remote
public interface MainDaoEJBRemote {

void sayHelloRemote();

}

我有一个实现我的接口(interface)的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());
}
}

}

当我尝试在托管Bean 上调用我的sayHello() 方法时,它会抛出NamingException:无法解析“MainDaoEJB”。已解决 ''

你能告诉我如何正确查找我的远程EJB吗?我应该设置 EJBJNDI 名称吗?

最佳答案

对于 WebLogic 上的远程查找,您应该使用 JNDI 名称 MainDaoEJB#<package>.MainDaoEJBRemote

MainDaoEJBRemote mainDaoEJB
= (MainDaoEJBRemote) ctx.lookup("MainDaoEJB#<package>.MainDaoEJBRemote")

关于java - weblogic 上的 EJB 远程 JNDI 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44760310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com