DataSource ds = null; 
     Context initCtx = new InitialContext(); 
     Context envCtx = (Context) initCtx.lookup("java:comp/env"); 
     ds = (DataSource)envCtx.lookup("jdbc/bn"); 
if(ds!=null) 
{
out.println("已经获得DataSource!"); 
}
试试这个

解决方案 »

  1.   

    请参考http://community.csdn.net/Expert/topic/4398/4398477.xml?temp=.9008448
      

  2.   

    你还应该在server.xml的  <GlobalNamingResources></GlobalNamingResources>中添加
          <description>DB Connection</description>
          <res-ref-name>jdbc/userdb</res-ref-name>
          <res-type>javax.mysql.DataSource</res-type>
          <res-auth>Container</res-auth>
      

  3.   

    回复人: beyondbyb() ( ) 信誉:100  2005-12-01 12:59:00  得分: 0  
     
     
       你还应该在server.xml的  <GlobalNamingResources></GlobalNamingResources>中添加
          <description>DB Connection</description>
          <res-ref-name>jdbc/userdb</res-ref-name>
          <res-type>javax.mysql.DataSource</res-type>
          <res-auth>Container</res-auth>我试了一下,还是原来的错误,就放在那俩个中间吗?
    因为他里面还有别的
      <GlobalNamingResources>    <!-- Test entry for demonstration purposes -->
        <Environment name="simpleValue" type="java.lang.Integer" value="30"/>    <!-- Editable user database that can also be used by
             UserDatabaseRealm to authenticate users -->
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
           description="User database that can be updated and saved">
        </Resource>
        <ResourceParams name="UserDatabase">
          <parameter>
            <name>factory</name>
            <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
          </parameter>
          <parameter>
            <name>pathname</name>
            <value>conf/tomcat-users.xml</value>
          </parameter>
        </ResourceParams>
          <description>DB Connection</description>
          <res-ref-name>jdbc/userdb</res-ref-name>
          <res-type>javax.mysql.DataSource</res-type>
          <res-auth>Container</res-auth>  </GlobalNamingResources>
    这样放可以吗?  
     
      

  4.   

    那个连接池配在server.xml文件中       <description>DB Connection</description>
          <res-ref-name>jdbc/userdb</res-ref-name>
          <res-type>javax.mysql.DataSource</res-type>
          <res-auth>Container</res-auth>
    就放在web.xml中啊,
    还需要什么配置吗?该有的都有了,还差什么呢?
      

  5.   

    OnlyFor_love(【不给我分,就剪掉楼主小鸡几】) ( ) 信誉:125  2005-12-01 12:31:00  得分: 0  
     
     
       DataSource ds = null; 
         Context initCtx = new InitialContext(); 
         Context envCtx = (Context) initCtx.lookup("java:comp/env"); 
        我在这边就走不下去了,你给我看的哪个,他这边没有问题
         ds = (DataSource)envCtx.lookup("jdbc/bn"); 
       他这边有问题,没有执行,现在我上面哪个就不行,我很郁闷
    if(ds!=null) 
    {
    out.println("已经获得DataSource!"); 
    }
    试试这个  
     
      

  6.   

    http://community.csdn.net/Expert/topic/4398/4398477.xml?temp=.2051355
      

  7.   

    请参考tomcat自己的文档,有很详细的描述
      

  8.   

    呵呵,其实在tomcat里面配置很简单,但是不同tomcat的配置有时是有些区别。
    5.028版本是这样,至少我的是对的:
    <!-- Global JNDI resources -->
    <GlobalNamingResources>
    ...
    <Resource name="jdbc/db2" type="javax.sql.DataSource" />
    <ResourceParams name="jdbc/db2">
          <parameter>
            <name>maxWait</name>
            <value>5000</value>
          </parameter>
          <parameter>
            <name>maxActive</name>
            <value>20</value>
          </parameter>
          <parameter>
            <name>password</name>
            <value>密码</value>
          </parameter>
          <parameter>
            <name>url</name>
            <value>jdbc:db2://localhost:6789/KINGSHEN</value>
          </parameter>
          <parameter>
            <name>driverClassName</name>
            <value>COM.ibm.db2.jdbc.net.DB2Driver</value>
          </parameter>
          <parameter>
            <name>maxIdle</name>
            <value>10</value>
          </parameter>
          <parameter>
            <name>username</name>
            <value>登陆名</value>
          </parameter>
        </ResourceParams>
    .....
      </GlobalNamingResources>
    <Host name="localhost" debug="0" appBase="webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false"> <Context path ="" docBase="C:/webserver/WebRoot" debug="0" reloadable="true" crossContext="true">
    <ResourceLink name="jdbc/db2" global="jdbc/db2" type="javax.sql.DataSource"/>
    </Context>
           
            <Logger className="org.apache.catalina.logger.FileLogger"
                     directory="logs"  prefix="localhost_log." suffix=".txt"
                timestamp="true"/>      </Host>
    并且在web下面根本不用配置,这样已经能够正常运行了!
      

  9.   

    nnd我好象也是同样的问题了,不知道错在那里了?高手指教下了
    用jdbc是可以的,用jndi就绑定不了了
      

  10.   

    看自己版本的tomcat文档,不同版本的配法是不一样的
      

  11.   

    代码中DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/userdb");改成DataSource dataSource = (DataSource) context.lookup("java:/jdbc/userdb");试试