jndi.properties内容:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099Tomcat,JBoss都在同一台机器上运行

解决方案 »

  1.   

    public   TestEJB()   { 
    try   { 
    Hashtable props = new Hashtable();
    props.put(InitialContext.INITIAL_CONTEXT_FACTORY,
                     "org.jnp.interfaces.NamingContextFactory");
    props.put(InitialContext.PROVIDER_URL, "jnp://localhost:1099");
    ctx   =   new   InitialContext(props); 
    }   catch   (Exception   e)   { 
    e.printStackTrace(); 


    因为你的调用程序在Tomcat容器里
    但EJB是在JBOSS容器里的
    对了,JBOSS本来带Tomcat了
    为何还要再整个Tomcat干啥?
      

  2.   

    谢谢楼上的回复,我知道Jboss里有Tomcat了,我用另外的Tomcat是为了试验一下EJB的分布式调用的特性。
    我想尝试用多个独立运行tomcat当Web前端调用在JBoss运行业务逻辑的EJB的架构
      

  3.   

    需要把JBOSS里的CLIENT目录里的一些JAR拷贝到你TOMCAT的WEBAPP/WEB-INF/LIB里
      

  4.   

    需要把JBOSS里的CLIENT目录里的一些JAR拷贝到你TOMCAT的WEBAPP/WEB-INF/LIB里
      

  5.   

    需要把JBOSS里的CLIENT目录里的一些JAR拷贝到你TOMCAT的WEBAPP/WEB-INF/LIB里
      

  6.   

    楼上说的是正解,要注意JBOSS用的RMI协议,因此是不能穿透网关的,因此只能在一个网段内使用。