Java weblogic上的EJB远程JNDI绑定

Java weblogic上的EJB远程JNDI绑定,java,jakarta-ee,weblogic,Java,Jakarta Ee,Weblogic,我有一个简单的远程接口: @Remote public interface MainDaoEJBRemote { void sayHelloRemote(); } @Stateless(mappedName = "MainDaoEJB") @Remote public class MainDaoEJB implements MainDaoEJBRemote { @Override public void sayHelloRe

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

@Remote
public interface MainDaoEJBRemote {

    void sayHelloRemote();

}
    @Stateless(mappedName = "MainDaoEJB")
    @Remote
    public class MainDaoEJB implements MainDaoEJBRemote {

        @Override
        public void sayHelloRemote() {

            System.out.println("remote invoked...");

        } 
    }
我有一个实现我的接口的无状态EJB:

@Remote
public interface MainDaoEJBRemote {

    void sayHelloRemote();

}
    @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
:无法解析“MainDaoEJB”。“已解决”


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

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

MainDaoEJBRemote mainDaoEJB
            = (MainDaoEJBRemote) ctx.lookup("MainDaoEJB#<package>.MainDaoEJBRemote")
mainDaoEJB远程mainDaoEJB
=(MainDaoEJBRemote)ctx.lookup(“MainDaoEJB#.MainDaoEJBRemote”)

对于WebLogic上的远程查找,您应该使用JNDI名称
MainDaoEJB。\MainDaoEJBRemote

MainDaoEJBRemote mainDaoEJB
            = (MainDaoEJBRemote) ctx.lookup("MainDaoEJB#<package>.MainDaoEJBRemote")
mainDaoEJB远程mainDaoEJB
=(MainDaoEJBRemote)ctx.lookup(“MainDaoEJB#.MainDaoEJBRemote”)