<value>jdbc:oracle:thin:@{HOST_IP}:{PORT}:{Database_name}</value>
应该是这行有问题,既然能够显示Datasource==NULL,证明能够编译成功,没有提示驱动出错,则只能是没有根据指定的url找到适当的数据库绑定到容器环境之中.
http://community.csdn.net/Expert/topic/3352/3352743.xml?temp=.1124994
看看这个帖子.

解决方案 »

  1.   

    但是我的确写的Oracle数据库服务器的IP和端口啊,服务名也是对的啊,真不明白……还望赐教!
      

  2.   

    不是阿,这是我发帖的时候改的啊,我配置的时候替换了相应的信息的啊。不知道大家配置这种连接池的时候,driverClassName里面写的是:
    oracle.jdbc.driver.OracleDriver
    还是:
    oracle.jdbc.OracleDriver 呢?url是写成: jdbc:oracle:thin:@//10.10.2.153:1521/mydbsid
    还是写成: jdbc:oracle:thin:@10.10.2.153:1521:mydbsid这么多种搞法,今儿上午我基本上都一一组合遍了,但还是不行,头大阿!!!!唯独下面这个TestCase可以运行:
    /**
    * @author Administrator
    *
    * TODO To change the template for this generated type comment go to
    * Window - Preferences - Java - Code Style - Code Templates
    */
    public class OracleConnectionTest extends TestCase {/*
    * @see TestCase#setUp()
    */
    protected void setUp() throws Exception {
    super.setUp();
    }/*
    * @see TestCase#tearDown()
    */
    protected void tearDown() throws Exception {
    super.tearDown();
    }public void testConnectToOracle() {
    String url_ = "//10.10.2.153:1521/track30.dichainits.com";
    String id_ = "track";
    String pass_ = "track";
    try {
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@" + url_, id_, pass_);
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery("select OEM_DESC from DC_GPS_OEM_TYPE");
    while (rset.next())
    System.out.println(rset.getString(1));
    conn.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    fail("connection creation failed.");
    }
    }
    }真是搞不明白——难道是Tomcat5.0的错!?
      

  3.   

    其实配置连接池就两种方法,一种是在SERVER.XML的HOST改就成了,一种是进TOMCAT里的ADMIN页里配置JNDI,再去改WEB.XML和你自己的工程的XML,楼主这样做,不知道算哪种了,要在你的工程的XML文件里加上
    <ResourceLink global="jdbc/OracleDB" name="jdbc/OracleDB" type="javax.sql.DataSource"/>
      

  4.   

    其实,我上面的就是第一种配置方法啊,在server.xml的Host元素中加入资源,然后在自己的web.xml中引用啊。但是, 
    <ResourceLink global="jdbc/OracleDB" name="jdbc/OracleDB" type="javax.sql.DataSource"/>这个是全局的资源吧?
      

  5.   

    顶,我今天也碰到了这个问题,我完全按照教材书上的例子来的,但不管怎么样?我的conn总是==null,期待中...........
      

  6.   

    我试了很多次,重新安装了Tomcat5.0.28(可以说是目前的稳定版把?)我也单独在conf\catalina\localhost目录下添加过context XML配置文件;
    也在server.xml中直接添加context 配置,
    但无论如何都得不到 datasource ...使用 Tomcat admin console 控制台配置出来的东西跟我自己个儿写的,没什么两样啊,可怎么的就不行了呢?真不晓得网上的例子是怎么能跑起来的……
      

  7.   

    有时候我怀疑是我的 ObjectFactory 写得不对,于是我去掉了下面的配置:
    <parameter>
    <name>factory</name>
    <!--<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>-->
    <value>oracle.jdbc.pool.OracleDataSourceFactory</value>
    </parameter>
    这样,应该使用的是默认的DBCP了吧? 可是又得到下面的错误:org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (调用中无效的参数)
    org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
    org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:65)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      

  8.   

    用TOMCAT里的ADMIN配的和自己在HOST里写是一样的,但位置就完全不同了,你在HOST里改了,就不用再改什么了,不用改WEB,也不用改自己的XML,现在的教材上说得都不对的,要看看网上高手写得,那些是可行的!
      

  9.   

    是的,我现在都没改 server.xml 了,因为每次改都得重新启动Tomcat(我老不放心,呵呵)
    所以,我都是在conf\catalina\localhost\ 下自己写xml,这样修改这个xml后,对应的web目录会自动刷新。
      

  10.   

    to  tyb98032(至尊宝);
    你的server.xml的配置是按照tomcat4.0版本来的,和tomcat5的配置是一样的吗?我在网上查了资料,如果是在tomcat4.0.6中
    <parameter>
        <name>factory</name>
        <value>oracle.jdbc.pool.OracleDataSourceFactory</value>
    </parameter>可以不写!
      

  11.   

    谢谢jacky!
    我的是tomcat5.0.28。最终问题还是出在URL的配置问题上,这是我在sun的JSDN论坛上看到的:I had the same problem.
    I think I know what may be going on.If in your tnsnames.ora file the SID is:KAITYS.TONG.COMTry:jdbc:oracle:thin:@shanias.twain.com:1521:KAITYSI think it has something to do with NAMES.DEFAULT_DOMAIN in
    the sqlnet.ora file. Try this, it worked for me.
    -------------------------------
    I had the same problem:
    Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135294976)(ERR=12505)(ERROR_STACK=(ERROR=(COD E=12505)(EMFI=4))))I have configured weblogic and oracle so many times before and out of the blue i get this with my new oracle installation.Even the TNSPING works perfectly.my sid is oradesu.com in the TNSNAMES.ORA.After doing a little tweeking, the issue is RESOLVED - (the server restart after each change seems to be important in setting this up.)Now my pool works with
    jdbc:oracle:thin:@127.0.0.1:1521:ORADESU
    or
    jdbc:oracle:thin:@127.0.0.1:1521:oradesuCuriously I tried ORADESU.COM - doesn't work.I entered
    user=scott
    password=tigerunder properties.Well, my pool works perfectly now.
    我把
    jdbc:oracle:thin:@10.10.2.153:1521:track30.dichainits.com
    改成:
    jdbc:oracle:thin:@10.10.2.153:1521:track30
    就OK了。