最近又在开始倒腾JSP,我都要疯了,问题一大堆!由于要在短时间内学习很多关于JSP的东东,所以借了一本明日科技的《JSP网络开发实例自学手册》,然后安装书中光盘的录像搭建配置好平台后,满心欢喜的按照光盘录像的提示一步一步的运行第一个SHOPPINGCENTER的实例,结果出现了一个错误,但是在网上百度了一下,出现这种情况的同仁还很多,但是就是没有搜索到解决的方法,下面我给出解决的方法!这个问题困扰了我三天,最后终于解决!拿来和大家分享下吧!
安装好JDK,TOMCAT,SQL SERVER之后,按照要求配置,都顺利的完成,结果出现问题是:
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:500)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:428)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.NullPointerException
com.tools.ConnDB.executeQuery(ConnDB.java:58)
org.apache.jsp.index_jsp._jspService(index_jsp.java:66)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.32 logs.
错误图片:
因为是新手,所以把程序放到了tomcat的安装目录下直接运行之后就是上面的错误。因为直接放到tomcat里运行,看不到详细的错误信息。所以,又把程序导入到了myeclipse里运行,结果出现了同样的错误,但是看到了详细的错误如下:
(此处只列出了重要的错误信息红色部分,其他的次要信息以省略号代替)
......
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

警告: DbConnectionManager.getConnection() 获得数据库链接失败.
链接类型:com.microsoft.jdbc.sqlserver.SQLServerDriver
链接位置:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_shop
用户/密码sa/
2011-4-22 13:40:44 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.tools.ConnDB.executeQuery(ConnDB.java:58)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:66)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
......
以上错误信息明显是数据库连接问题,在苦战了三天之后,终于找到了问题的所在:SQL SERVER 2000版本过低,必须要SP3以上版本才可以!!!
因为之前安装过了SP3的补丁,但是SQL server 2000还是显示的是rtm版本。后来知道那个补丁虽然是exe文件,但是是一个压缩包,直接点击安装根本就安装不上,所以之前安装了N次补丁,都没有安装上,所以版本总是rtm。正确的安装方法是先解压再安装!
如何查看自己安装的SQL SERVER 的版本,方法如下:
查询分析器----》输入如下语句:
select serverproperty('productversion')
,serverproperty('productlevel')
,serverproperty('edition')
运行,则看得到自己的版本!如图: