1、回答是。
至于java:comp/env ,java:comp/env代表你的JVM的环境,从字面就可以理解
comp=computer
env=environment
ejb组件的调用可以通过JNDI也可以通过refference
加了java:comp/env则是通过reference的引用,而直接的JNDI_Name就是通过JNDI的引用2、见jndi含义3、在1中已经回答了,
具体的用法你可以通过实际的代码调试来加深理解.
大体来讲,你用ref就必须加上java:comp/env
而用JNDI name就不需要!后面的问题我看得比较乱,基本上还是以上的问题

解决方案 »

  1.   

    第三个问题:
    3 无论是数据源还是EJBHOME,在客户端通过JNDI查找的时候,我发现有两种(网上的例子)
    1) ctx.lookup("java:comp/env/jdbc/ejbpool");
    2) ctx.lookup("ejbpool");
    也就是说,一个是把路径和名字都写全,一个是只写名字。
    相对于你的ctx的url,如果是 prop.put(Context.PROVIDER_URL , "t3://192.168.0.101:80");请用第一个,prop.put(Context.PROVIDER_URL , "t3://192.168.0.101:80/java:comp/env/jdbc"),用第二个,跟http的url有类似。
      

  2.   

    ejb组件的调用可以通过JNDI也可以通过refference
    加了java:comp/env则是通过reference的引用,而直接的JNDI_Name就是通过JNDI的引用相对于你的ctx的url,如果是 prop.put(Context.PROVIDER_URL , "t3://192.168.0.101:80");请用第一个,prop.put(Context.PROVIDER_URL , "t3://192.168.0.101:80/java:comp/env/jdbc"),用第二个,跟http的url有类似。=======================================
    看了等于没有看,我还是一点也不明白,到底这两个有什么区别嘛,一个写一长串,一个只用写后面的名字。能不能说具体一点。其他问题怎么没有回答啊???真没有人想要分吗????????
      

  3.   

    1 这些生成的代码是不是一定是通过先查找这个我配置的DATASOURCE,然后通过它来连接数据库的???如果不是,怎么样使EJB通过这个我的DATASOURCE连接数据库???
    答:如果用的是jb和weblogic,那么具体一个cmp的生成过程如下:
      1。使用数库工具建立数据库
      2。配置连接池:在weblogic控制台下的services下的jdbc下面选择connection pools(具体步骤就不描述了,可参考(飞思的j2ee应用开发)。
      3。配置数据源:同上,不过最后一步选择Data Sources(在此向配置中包含了jndi的定义)。
      4。在jb中建立工程,建立ejb module。然后直接右击选择Import Schema From Database,倒入你刚才配置的数据源。
      5。成功导入后,在对应的表上右击,可建立对应表的cmp.******************************************************
    2 要知道,我在WEBLOGIC里面部署DATASOURCE的时候,只定义了名字,没有定义它在JNDI中的路径,怎么知道这前面的具体路径??我可以明确定义DATASOURCE在JNDI里面的路径吗??如果可以怎么定义????
    答:同上。
    *******************************************************
    3 无论是数据源还是EJBHOME,在客户端通过JNDI查找的时候,我发现有两种(网上的例子)
    答:如果是weblogic,直接写ctx.lookup("ejbpool");既可以了。具体写法好像根ejb容器有关系。
    *******************************************************4 我找不到在用JBUILDERX写EJB之前,定义的那个DATASOURCE的意义?
    答:如果根据datasource生成了ejb,那么其中的一些变量不就是数据库中对应的字段值吗?
    *******************************************************
      

  4.   

    4 我找不到在用JBUILDERX写EJB之前,定义的那个DATASOURCE的意义?
    答:如果根据datasource生成了ejb,那么其中的一些变量不就是数据库中对应的字段值吗?
    ===================================
    楼上,我所说的DATASOURCE,是用来生成CONNECTION的,不是数据库中的表啊!    Connection con = mydatasource.getconnection();
      

  5.   

    1.在使用EJB时,没有在代码中指定DATASOURCE的话,必须在部署文件中定义DATASOURCE相关的JNDI名字。至于在什么地方,是你在部署EJB时或在代码中定的。
    对EJB,使用ctx.lookup(”path/yourname")查找2.前面的路径是这样的;对于远程接口使用ctx.lookup("java:comp/env/jdbc/ejbpool");对于本地接口,使用ctx.lookup("ejbpool"),前面的路径是默认的,使用远程EJB是“java:comp:env”加名字,本地EJB可以直接使用名字,名字是部署EJB时自己设的。3。见24。是的,在包容器相关的部署文件里面,这个是WEBLOGIC专用的,依服务器的不同而不同.这个不是必须的,你也可以在代码中设定。5。呢称就是别名,起一个标识作用,默认是EJB的名字,若这个名字和其他JNDI服务,如数据源或其他EJB的名字相同,就可以把这个该成其他的名字,以示区别 决定名字。各自字段的含义你可以看文档。这些属性全部可以在JBX或者EJB里面设定,不需手动修改。6。见1,可以设定也可以在代码里面写入。若同时使用,一般以代码中的为准,因为在代码中是最新设定的。6。
      

  6.   

    看了等于没有看,我还是一点也不明白,到底这两个有什么区别嘛,一个写一长串,一个只用写后面的名字。能不能说具体一点。
    t3://192.168.0.101:80+java:comp/env/jdbc/ejbpool=t3://192.168.0.101:80/java:comp/env/jdbc/+ejbpool
    这样说吧,html兄弟应该写过吧,如果没有写过,现在学还来得及。在页面http://sbhost/sb/sb.htm页面上链接<a href="test.htm"> 和<a href=http://sbhost/sb/test.htm>有什么不同吗?,啊,相对路径!
      

  7.   

    那我什么时候用哪个?如果前面的路径:JAVA:COMP/ENV是固定的,这个还有什么意义????什么时候会改变?