你也是通过jdbc-odbc桥的方式连接db2?
你可以看看weblogic的log文件,看看到底是什么地方报错嘛,
这个通常应该是class not found之类造成的

解决方案 »

  1.   

    to nomood(晓百):
    我出错的这个是通过db2的jdbc driver访问另一台数据库服务器的,不是jdbc-odbc,(我另外写了一个用jdbc-odbc的例子,运行成功)。
    weblogic.log文件的错误信息如下:
    星期二 八月 21 20:51:58 GMT+08:00 2001:<E> <ServletContext-General> Servlet failed with Exception
    java.lang.NullPointerException
    at jsp_servlet._chenqing._select._jspService(_select.java, Compiled Code)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:915)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:879)
    at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269)
    at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:365)
    at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:253)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java, Compiled Code)请大家帮我看看到底是什么原因?
      

  2.   

    to Mars_lee(二子):
    小弟可以肯定不是程序本身问题,因为同一程序在win98下jswdk下运行成功,现在在win2k下weblogic5.1中却出错。 在weblogic下关于jdbc有什么需要特殊配置的吗?
      

  3.   

    如果程序没问题,就100%是数据库驱动的问题,因为驱动不对,所以没有连接上数据库,继续操作就会报NullPointerException.
    你让我看看连接数据库的程序!
      

  4.   

    to rinehart(rinehart) :
    OK! 清大侠过目:
    package mybean; import java.text.*; 
    import java.util.*; 
    import java.sql.*; public class DBbean{
    private   String  DBDriver="COM.ibm.db2.jdbc.net.DB2Driver";
    private   String  DBUrl="jdbc:db2://172.16.100.75:6789/SYSZDB";
    private   String  userid="mis";
    private   String  password="mis";
    private   Connection conn=null;
    private   ResultSet rs=null;public DBbean() {
    }
    public String DBConnect(){
    String strExc="";
       try{
    Class.forName(DBDriver);
        conn=DriverManager.getConnection(DBUrl,userid,password);    
       }
       catch(java.lang.ClassNotFoundException e){
          strExc=e.toString();
       }
       catch(SQLException e){
        strExc=e.toString();
    }

    return(strExc);
    }public ResultSet executeQuery(String sql){
    if(conn==null){
    DBConnect();
    }

    if(conn==null){
    rs=null;
    }
    else{
        try {
    Statement stmt=conn.createStatement();
    rs=stmt.executeQuery(sql);
        }
        catch(SQLException ex){
    System.err.println("DBbean.executeQuery:"+ex.getMessage());
        }
    }
    return rs;
    }
      

  5.   

    你在
    conn=DriverManager.getConnection(DBUrl,userid,password);
    后面加上
    System.out.println(conn.isClosed());
    然后告诉我输出结果!
      

  6.   

    还有这句应该是:
    Class.forName(DBDriver).newInstance();
      

  7.   

    谢谢各位,我的问题已解决了,原因是...,
    说出来怕大家扇我,忘了写jdbc driver的classpath。
    谢谢大家,今天心情不错,发奖喽!!!