java bean已经编译好了.
但在jsp运行java段的时候却报错,程序写法如下:
<% 
   String ls_s;
   ls_s = "00226" ;
   String sqlid = "select * from a where b = " + ls_s;
   String zhm ;
   ResultSet rsid=student.executeQuery(sqlid);   
   if(rsid.next())
   { 
zhm=rsid.getString("bb");
out.println(zhm);
   }   
%>
如果把   if(rsid.next())
   { 
zhm=rsid.getString("bb");
out.println(zhm);
   }   
封掉,就不会报错,但如果不封,就会出现HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
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)
root cause java.lang.NullPointerException
org.apache.jsp.a_jsp._jspService(a_jsp.java:73)
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)这样的错误.为什么呢?有没有哪位高手知道啊?

解决方案 »

  1.   

    可能是配置桥的时候出错了,应该是系统DSN,而不是在用户DSN里面配置
      

  2.   

    你先注释掉:
    if(rsid.next())
    {
    zhm=rsid.getString("bb");
    out.println(zhm);

    然后打印一下rsid.next(),看输出是不是null
      

  3.   

    java.lang.NullPointerException,说明你的 rsid 是null,一般在调用一个对象的方法的时候先要判断一下是否为nullif( rsid!=null &&  rsid.next()){
        // to your things
    }
    还有ResultSet rsid=student.executeQuery(sqlid);   这句之前最好也 判断一下student是否为空.
      

  4.   

    显然,rsid是空的,student不可能是空的,如果student为空,在student调用的时候就出nullpointexception了,你确认rsid为什么是空的吧
      

  5.   

    //student不可能是空的.这里虽然没抛错, 但多判断一下总没错吧. 这是习惯问题.jdbc操作数据库多放在try{} catch() 里面,也没见楼主有这种写法.再有,这种操作数据库以及业务逻辑都写在jsp里面,这是什么时代的事情啊,asp 才这样.调试起来也不方便.建议分开写.
      

  6.   

    我连接的是odbc来的哦,用sql anywhere 5.这样子有问题吗?但运行ResultSet rsid=student.executeQuery(sqlid);   好象没有出错哦.
      

  7.   

    to wssgwps(凸(-_-)凸) 我输出rsid.next()是为true哦,会不会有什么问题呢?