我用的应用服务器是JBOSS,ejb-jar.xml中有如下片断:
<resource-ref>
        <res-ref-name>jdbc/bmp-account</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
      </resource-ref>
jboss.xml中有如下片断:
<resource-ref>
        <res-ref-name>jdbc/bmp-account</res-ref-name>
        <jndi-name>jdbc/bmp-account</jndi-name>
      </resource-ref>
链接数据库的代码片断:
Context ctx = new InitialContext();
            javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("java:comp/env/jdbc/bmp-account");
我就想问一下,我实际的数据库信息怎样和逻辑名称对应呢?如果我有用户名,密码之类的信息呢?我用的是JBOSS,希望各位高手指点一二,多谢了.

解决方案 »

  1.   

    在EJB初始化那个方法里。写上你刚刚那句话。拿到数据源附,在类中的其他方法直接用数据源拿连接就好了。接下来就是纯粹的JDBC了~
      

  2.   

    我这里没装Weblogic。所以不能具体告诉你是哪个方法了。。呵呵~
      

  3.   

    多谢chnic(挠痒痒)了,但是我还是不太懂:在EJB初始化那个方法里。写上你刚刚那句话。拿到数据源附,在类中的其他方法直接用数据源拿连接就好了。接下来就是纯粹的JDBC了初始化发放---指的是那个方法.刚刚那句话---指的是哪句话.拿到数据源附,在类中的其他方法直接用数据源拿连接就好了---这句话没有看懂.
    多谢指点了.
      

  4.   

    就是在你从实体BEAN继承下来的那个类。中定义一个datasource类型的属性。在初始化方法中(我忘了具体是哪个方法了,你随便写个Bean然后在每个方法里都协商system.out.println打点内容,看看哪个方法先执行就是哪个,我机器上没装Weblogic,没办法试,不好意思,呵呵~)用jndi拿数据源,附给自己刚刚建的那个属性就好了。然后不就可以在其他方法那数据源拿连接了?呵呵~
      

  5.   

    还是有问题:
    那么我的数据库信息在哪里配置呢?jndi又怎么和这些数据库配置想联系呢?
    如果光是:
    Context ctx = new InitialContext();
                javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("java:comp/env/jdbc/bmp-account");
    那么程序如何知道jdbc/bmp-account对应的数据库的物理地址以及他的密码之类的信息呢?
    我用的是jboss,应该在哪里配置这些信息呢?
    我刚学了不久,多谢了chnic(挠痒痒)
      

  6.   

    一般的 你如果用EJB的话,不建议用别的容器的连接池。比如你用weblogic那就用weblogic自带的连接池,(我没用过jboss不好意思)况且apche的DBCP的连接池也是被证明有bug的,至于你说的密码,那是你实现在容器里配好的。在程序中如果要是用直接用JNDI来拿就好了。
      

  7.   

    建议在CSDN搜索一个文档按照上面的说明做
      

  8.   

    那么jboss的数据库链接怎么配置呢?搜索了好久,配置出来就连启动jboss都报错了.
    总是出现
    No properties file: users.properties or defaults: defaultUsers.properties found