props.put(InitialContext.PROVIDER_URL, "jnp://localhost:8080");

解决方案 »

  1.   

    你的上下文环境配置错误,应该是这样:
    props.put(Context.INITIAL_CONTEXT_FACTORY,
                        "org.jnp.interfaces.NamingContextFactory");
    props.put(Context.URL_PKG_PREFIXES,
                        "org.jboss.naming:org.jnp.interfaces");
    props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
    这样就没问题了。
      

  2.   

    to itone_lch(天地) ,charyman(嗑睡虫) 不行啊,
    还是同样的错误,请问jboss要做什么配置吗?
      

  3.   

    没在Jboss里配置过EJB.
    不知道.
      

  4.   

    自己解决了,在写成
    props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
    的时候Object obj = ctx.lookup("HelloHome");要写成Object obj = ctx.lookup("Hello");
    也就是<ejb-name>而不是<remote>,
    而写成props.put(Context.PROVIDER_URL, "jnp://localhost:8080");的时候两种写法都不行,
    和端口有关吗?
    有谁能给出原因吗?给出原因的另开贴给50分.说好算数.
      

  5.   

    EJB是什么东西啊?JAVABEAN又是什么呢?是微软的产品吗?怎么好象没听过?导师好象也讲过什么BEAN的,还有什么JAVA的,是不是微软的东西啊?
      

  6.   

    1.ejb远程调用要用remote调用,本地用local调用,Home借口是创建、定位和删除ejb用的,remote和Local是调用业务方法采用的
    2.和端口当然有关,1099是jboss的端口,8080不是,必须端口号和应用服务器的一样
    3.EJB是enterprise java bean 企业javabean,是j2ee规范中的一部分,是sun的,不是微软的
      

  7.   

    其实你用的Hello不是<ejb-name>而是jdni名字,他是远程访问ejb的引用名
      

  8.   

    to jia0(佳) :
    先谢谢你
    1.我看很多的程序都是props.put(Context.PROVIDER_URL, "jnp://localhost:8080");这种写法
    如果改成这种写法,那么jboss的断口是不是也要改掉,如果不改那么怎么运行成功?
    2."Hello"这个名字我是通过http://localhost:8080/下的java.j2ee的module找到的,我并没有配置jini,在打包发布的时候是否jini的名字就默认为你的<ejb-name>?我会另开贴给分的.