javax.naming.NameNotFoundException这种错误一般是定义冲突
把你的调用EJB的客户端程序打出来看看,然后看看你的定义XML文件里有没有Hello

解决方案 »

  1.   

    客户端HelloServlet.java
    ***********
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import javax.ejb.*;
    import javax.naming.InitialContext;public class HelloServlet extends HttpServlet
    {
    public void service(HttpServletRequest req,HttpServletResponse res) throws IOException
    {
    res.setContentType("text/html");
    PrintWriter out=res.getWriter();
    out.println("<html><head><title>the first EJB</title></head>");
    try
    {
    InitialContext ctx=new InitialContext();
    Object objRef=ctx.lookup("java:comp/env/ejb/Hello");
    HelloHome home=(HelloHome)javax.rmi.PortableRemoteObject.narrow(objRef,HelloHome.class);
    Hello bean=home.create();
    out.println(bean.getHello());
    }
    catch(javax.naming.NamingException ne)
    {
    out.println("Naming Exception Catch:"+ne);
    ne.printStackTrace(out);
    }
    catch(javax.ejb.CreateException ce)
    {
    out.println("Create Exception Catch:"+ce);
    ce.printStackTrace(out);
    }
    catch(java.rmi.RemoteException re)
    {
    out.println("Remote Exception Catch:"+re);
    re.printStackTrace(out);
    }
    out.println("</head></html>");
    }}
      

  2.   

    配置描述的xml为:(ejb-jar.xml)
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
    <ejb-jar>
    <description>
    This is a HelloEJB example
    </description>
    <display-name>HelloBean</display-name>
      <enterprise-beans>
        <session>
    <display-name>Hello</display-name>
    <ejb-name>Hello</ejb-name>
    <home>HelloHome</home>
    <remote>Hello</remote>
    <ejb-class>HelloEJB</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
     </enterprise-beans>
    </ejb-jar>
      

  3.   

    Object objRef=ctx.lookup("Hello");//test this
      

  4.   


    jndi.properties
    内容是:.........java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.provider.url=*******:1099
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces............一般就这三行。注意*******
      

  5.   

    JNDI中的名字没有设置好,或者说是错了,没有找到!
      

  6.   

    谁有jndi技术的详细资料?好像没有这方面的书。害得我一直模棱两可的。那位大哥可以给点资料?[email protected]