To: singlebigstone(一道烟)兄
我的数据源都没问题!按理说即使数据源是空的getConnection()这个函数也应该存在呀!怎么这里显示这个函数是未知的!
还请各位再帮帮忙!

解决方案 »

  1.   

    要不你把那个Exception粘出来。
      

  2.   

    它现在没有报Exception,只是在我输入的时候ds.后面出现的提示框里面没有getConnection()这个方法!并且如果我输入getConnection()的时候,在代码编辑框中给出提示说cannot verify the simple
    "getConnection()"!如果我自己编译执行的话,在浏览器中没显示!一片空白!
      

  3.   

    To:joyaga(joyaga) 兄
     我现在不用编译器,就是直接编译然后执行,结果浏览器中没有一点显示。我即使加入一些输出,结果浏览器中还是没有输出!
    哎!真是郁闷!
      

  4.   

    DataSource中有getConnection()这个方法的,有可能是你在输入的时候系统不认识那种输入法,结果输入的字符串系统不能识别,所以就会说有错误的。
      

  5.   

    Context initCtx=new InitialContext();
    if(initCtx!=null){
       Context ctx = (Context)initCtx.lookup("java:comp/env");}
    else{System.out.println("initCtx is null!");}
    if(ctx!=null){
       ds=(DataSource)ctx.lookup("jdbc/mssql");}
    else{System.out.println("ctx is null!");}
    if(ds!=null){
       Connection conn = ds.getConnection();");}
    else{System.out.println("ds is null!");}把你的代码用上面的代替一下,看看哪个是空的,再对症下药吧。
      

  6.   

    而且你看一下,你连着用了两个Context,尝试把两个context合并到一个中试试。如下写法:
       try {
          Context ctx = new InitialContext();
          if (ctx == null)
            throw new Exception("Boom - No Context");
            DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mssql");
          if (ds != null) {
            conn = ds.getConnection();
          }
        }
        catch (Exception e) {
          e.printStackTrace();    }
      

  7.   

    问题基本上是找到了,我在ds=(DataSource)ctx.lookup("jdbc/mssql");前面加一条语句就能够输出结果,但是我在这一句的后面加一条语句就得不到结果!是不是找不到jdbc/mssql呢?我在Tomcat控制台里面建立的数据源难道还需要在什么地方设置不成吗?
    请各位指点一下!小弟先谢过了!
      

  8.   

    问题基本上是找到了,我在ds=(DataSource)ctx.lookup("jdbc/mssql");前面加一条语句就能够输出结果,但是我在这一句的后面加一条语句就得不到结果!是不是找不到jdbc/mssql呢?我在Tomcat控制台里面建立的数据源难道还需要在什么地方设置不成吗?
    请各位指点一下!小弟先谢过了!
      

  9.   

    这是Server.xml里面自己建立的代码:
    <?xml version='1.0' encoding='utf-8'?>
    <Server>
      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
      <GlobalNamingResources>
        <Environment value="30" type="java.lang.Integer" name="simpleValue"/>
        <Resource type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" auth="Container" name="UserDatabase"/>
        <Resource type="javax.sql.DataSource" name="jdbc/mssql"/>
        <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>
        <ResourceParams name="jdbc/mssql">
          <parameter>
            <name>validationQuery</name>
            <value>this datasource is  a connection to Microsoft Sql Server 2000</value>
          </parameter>
          <parameter>
            <name>url</name>
            <value>jdbc:microsoft:sqlserver://192.168.130.66:1433;DatabaseName=test</value>
          </parameter>
          <parameter>
            <name>password</name>
            <value>admin_2004</value>
          </parameter>
          <parameter>
            <name>maxActive</name>
            <value>4</value>
          </parameter>
          <parameter>
            <name>maxWait</name>
            <value>5000</value>
          </parameter>
          <parameter>
            <name>driverClassName</name>
            <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
          </parameter>
          <parameter>
            <name>username</name>
            <value>sa</value>
          </parameter>
          <parameter>
            <name>maxIdle</name>
            <value>2</value>
          </parameter>
        </ResourceParams>
      </GlobalNamingResources>
      <Service name="Catalina">
        <Connector acceptCount="100" connectionTimeout="20000" port="8080" redirectPort="8443" disableUploadTimeout="true">
        </Connector>
        <Connector protocol="AJP/1.3" port="8009" redirectPort="8443" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler">
        </Connector>
        <Engine defaultHost="localhost" name="Catalina">
          <Host appBase="webapps" name="localhost">
            <Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="localhost_log." timestamp="true"/>
          </Host>
          <Logger className="org.apache.catalina.logger.FileLogger" suffix=".txt" prefix="catalina_log." timestamp="true"/>
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
        </Engine>
      </Service>
    </Server>
      

  10.   

    在web.xml里面也要做相应的配置,在<web-app>与</web-app>间加类似这样的代码:
    <resource-ref> 
          <description>Connection</description> 
          <res-ref-name>jdbc/mssql</res-ref-name> 
          <res-type>javax.sql.DataSource</res-type> 
          <res-auth>Container</res-auth> 
    </resource-ref> 你的<res-ref-name>就是jdbc/mssql
    另外,最好将lookup的参数写成这样:
    lookup("java:comp/env/jdbc/mssql");还有,你的驱动没有问题吧?
      

  11.   

    http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-resources-howto.html
    看看这个文档吧,可能对你有帮助的。
      

  12.   

    另<Service name="Catalina">
        <Connector acceptCount="100" connectionTimeout="20000" port="8080" redirectPort="8443" disableUploadTimeout="true">
        </Connector>
        <Connector protocol="AJP/1.3" port="8009" redirectPort="8443" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler">
        </Connector>
        <Engine defaultHost="localhost" name="Catalina">
    这几句可能应该写到<GlobalNamingResources>的前面
      

  13.   

    To singlebigstone(一道烟) 兄
    谢谢你的帮忙
    不过我照你的方法做了,这一次浏览器一直在连接,出不来结果!好像是连不上!现在真的搞不懂了!
    郁闷!
      

  14.   

    再看看tomcat的日志吧,看看是什么问题。