可是出现一下错误! 
我是在j2ee riaccess countInterest 
lookup java:comp/env/ejb/InterestBean...... 
Caught an exception. 
javax.naming.NameNotFoundException.  Root exception is org.omg.CosNaming.NamingC 
ontextPackage.NotFound 
       at org.omg.CosNaming.NamingContextPackage.NotFoundHelper.read(NotFoundHe 
lper.java:34) 
       at org.omg.CosNaming._NamingContextExtStub.resolve(_NamingContextExtStub 
.java:404) 
       at com.sun.jndi.cosnaming.CNCtx.callResolve(CNCtx.java:324) 
       at com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:373) 
       at com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:351) 
       at javax.naming.InitialContext.lookup(InitialContext.java:350) 
       at com.sun.enterprise.naming.factory.IIOPObjectFactory.getObjectInstance 
(../../src/share/com/sun/enterprise/naming/factory/IIOPObjectFactory.java:42) 
       at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:3 
07) 
       at com.sun.enterprise.naming.SerialContext.lookup(../../src/share/com/su 
n/enterprise/naming/SerialContext.java:138) 
       at com.sun.enterprise.naming.java.javaURLContext.lookup(../../src/share/ 
com/sun/enterprise/naming/java/javaURLContext.java:58) 
       at javax.naming.InitialContext.lookup(InitialContext.java:350) 
       at accountEjb.callInterestBean(accountEjb.java:164) 
       at accountEjb_EJBObjectImpl.callInterestBean(accountEjb_EJBObjectImpl.ja 
va:125) 
       at _accountEjb_EJBObjectImpl_Tie._invoke(Unknown Source) 
       at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatchToServant(Ge 
nericPOAServerSC.java:512) 
       at com.sun.corba.ee.internal.POA.GenericPOAServerSC.internalDispatch(Gen 
ericPOAServerSC.java:177) 
       at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatch(GenericPOAS 
erverSC.java:106) 
       at com.sun.corba.ee.internal.iiop.ORB.process(ORB.java:264) 
       at com.sun.corba.ee.internal.iiop.RequestProcessor.process(RequestProces 
sor.java:85) 
       at com.sun.corba.ee.internal.orbutil.ThreadPool$PooledThread.run(ThreadP 
ool.java:91) 

解决方案 »

  1.   

    方法和客户端一样!
    请看你的异常: 
    javax.naming.NameNotFoundException.  Root exception is org.omg.CosNaming.NamingC 
    ontextPackage.NotFound 这说明在你的程序头部没有包含java.naming.Context包。
    不知道你用什么编译环境,如果是JDeveloper,那就是系统没有提供这个包。
      

  2.   

    ejb call ejb跟普通client调用一样。
      

  3.   

    问题解决必须要把两个ejb打到一个jar里才可以
    我的环境是j2sdkee ri
    ---weblogicyao要不要这样呢?
    ---ias要不要呢?
    ----这是不是j2ee的规范呢〉?
      

  4.   

    我觉得没有必要一定打包到一个.jar里,因为,我的Stateless Session bean调用CMP实体bean
    时,并没有在一个.jar里,同样正常运行。
      

  5.   

    1. 如果使用JNDI ENC,注意ejb-reference设置。
    2. 如果使用和客户端一样的方法,注意jndi.properties文件或ENV设置。
      

  6.   

    不必两个ejb打到一个jar里.
    与client调用一样.
      

  7.   

    to 每个人可是打到一个包中 问题就解决了
    这和我的配置有关系么?
    每个ejb一个jar包就会出那个错!---为什么?to feelyou : ejb-reference 在那里配置?我的jndi.properties是这样的!应该怎么改?
    java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory
    java.naming.factory.url.pkgs=com.sun.enterprise.naming
      

  8.   

    Properties p = new Properties();
    p.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    ctx = new javax.naming.InitialContext(p);
      

  9.   

    手边没有书,凭印象说的,有错欢迎指出:
    ejb-reference 在你的ejb-jar.xml中配置如下,<ejb-ref>
    <description>Something about your interest bean.</description>
    <ejb-ref-name>ejb/InterestBean</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>packagename.interestHome</home>
    <remote>packagename.interestRemote</remote>
    </ejb-ref>
        
    放在你的<session> </session>之间,就在</session>上头吧。
    这种做法不管两个bean是不是在一个jar中都可以。
    如果在一个jar中的话,好象可以由一个<ejb-link>InterestBean</ejb-link>就可以了。