在BMP得ejb-jar.xml里配置
<resource-ref>
            <res-ref-name></res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
         </resource-ref>

解决方案 »

  1.   

    还是报错 javax.naming.NameNotFoundException: DSJOA not bound
      

  2.   

    DataSource ds = (DataSource) ic.lookup(java:DSJOA);
      

  3.   

    好了,DataSource ds = (DataSource) ic.lookup(java:DSJOA);终于成功了,
    但是Connection con = ds.getConnection()报错
    TransactionRolledbackLocalException, causedBy:java.lang.IllegalArgumentException: Attempt to get lock ref with a null object
    请问是怎么会事啊?
    RobertDeNiro()  为什么jndi名称怎么是"java:DSJOA",我明明定义的不是"DSJOA"吗?
      

  4.   

    ----
    为什么jndi名称怎么是"java:DSJOA",我明明定义的不是"DSJOA"吗?
    ----你可以搜索一下以前的帖子,我回答过这个问题,说的很详细。
    你是不是在jboss的外部调用的数据源了,也就是说和jboss不在同一个jvm
      

  5.   

    改成
    DataSource ds = (DataSource) ic.lookup(java:/DSJOA);
      

  6.   

    DataSource ds = (DataSource) ic.lookup(java:/DSJOA)
    或者 DataSource ds = (DataSource) ic.lookup(java:DSJOA)
    运行的时候都不错
    但是执行到Connection con = ds.getConnection()时
    就会报错
    TransactionRolledbackLocalException, causedBy:
    java.lang.IllegalArgumentException: Attempt to get lock ref with a null object
    请问这个是什么原因???
    我怀疑还是jndi名字有问题
    因为我的datasource是在jboss的mssql-ds.xml中定义的,而且我也并不是从jboss的外部调用
    这个datasource的
      

  7.   

    帮你顶,我也是自己做了一个class使用lookup数据源,说是没有绑定,但我在bmp中使用,同样的代码却好使
      

  8.   

    请问xiaoyunzi(小鱼子)你是怎么配置数据源并在bmp中找到这个数据源的?
      

  9.   

    我是在oracle-ds.xml中配置好数据源,然后通过
    Hashtable jndiParm = new Hashtable();
        jndiParm.put(Context.PROVIDER_URL, "localhost:1099");
        jndiParm.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
        InitialContext ctx = new InitialContext(jndiParm);    DataSource ds = (DataSource)ctx.lookup("java:/OracleDS");
        java.sql.Connection con = ds.getConnection();
      

  10.   

    或者我这样问,我想在jboss下面配置一个sql2000的数据源,然后在bmp中通过lookup来找到这个
    数据源,并取得连接,我应该怎么做,在jboss下面怎么配置这个数据源,在bmp中怎么查找这个数据源
    并取得连接,有没有人能给个例子,小弟感激不尽!!!
      

  11.   

    那你就配好这个mssql-ds.xml,再用jndi找到不就行了
      

  12.   

    我配好了
    但是用jndi怎么来找呢??
    用lookup("DSJOA")找不到
    我是用lookup(java:/DSJOA)能找到 但是Connection con = ds.getConnecton() 的时候
    就出错
    TransactionRolledbackLocalException, causedBy:java.lang.IllegalArgumentException: Attempt to get lock ref with a null object
      

  13.   

    dataSource = (DataSource)ctx.lookup("java:comp/env/jdbc/DSJOA");在jboss的conf中的standardjbosscmp-jdbc.xml必须配置default数据源