繁体   English   中英

weblogic上的EJB远程JNDI绑定

[英]EJB remote JNDI binding on weblogic

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

@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 :无法解析'MainDaoEJB'。 解决 ''

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM