java-我的代码中JNDI名称在哪里?

我已经使用Eclipse 3.7 IDE创建了一个EJB2.0,并将其部署在JBoss 5应用服务器中(我的bean名称是product).我正在执行普通的上下文查找(以及其他调用ejb的工作),并且能够成功调用EJB.现在我的问题是JNDI的确切名称是什么,在所有这些名称中都使用了它.我的bean名称是JNDI名称,还是我的JNDI名称-> org.jnp.interfaces.NamingContextFactory. JNDI名称在哪里????
我的代码:

// initial code.............
Context  ctx = getContext();
Object obj=ctx.lookup("Product");
ProductHome home =(ProductHome)  javax.rmi.PortableRemoteObject.narrow(obj,ProductHome.class);
ProductRemote remote=home.create();

Product prd = new rohit.Product("PRDCamera",001,50.50) ;
remote.addProduct(prd);
remote.updateProduct(prd);
remote.removeProduct(001);
remote.findProduct(001);
remote.findAllProduct();


// getContext Method

public static InitialContext getContext() throws Exception{
    Properties pro = new Properties();
    pro.put(javax.naming.InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
    pro.put(javax.naming.InitialContext.PROVIDER_URL,"localhost:1099");
    return new InitialContext(pro);
}

解决方法:

您的代码中没有JNDI名称.

这是在EJB 2.0中查找EJB的方式:

Object ejbHome = initialContext.lookup("java:comp/env/com/mycorp/MyEJB");

MyHome myHome = (MyHome)javax.rmi.PortableRemoteObject.narrow(
  (org.omg.CORBA.Object)ejbHome, MyHome.class);

在这种情况下,JNDI名称为java:comp / env / com / mycorp / MyEJB.

在更精通的EJB 3.0中,您只需

MyEJB myEJB = initialContext.lookup("java:comp/env/com/mycorp/MyEJB")

并消除可怕的家庭界面想法.

上一篇:java-如何在jms中使用JNDI


下一篇:java-JSP / Servlet设计问题-通过JNDI使请求/响应全局可用