最
近又在開始倒騰JSP,我都要瘋了,問題一大堆!由于要在短時間內(nèi)學(xué)習(xí)很多關(guān)于JSP的東東,所以借了一本明日科技的《JSP網(wǎng)絡(luò)開發(fā)實例自學(xué)手冊》,然
后安裝書中光盤的錄像搭建配置好平臺后,滿心歡喜的按照光盤錄像的提示一步一步的運行第一個SHOPPINGCENTER的實例,結(jié)果出現(xiàn)了一個錯誤,但
是在網(wǎng)上百度了一下,出現(xiàn)這種情況的同仁還很多,但是就是沒有搜索到解決的方法,下面我給出解決的方法!這個問題困擾了我三天,最后終于解決!拿來和大家
分享下吧!
安裝好JDK,TOMCAT,SQL SERVER之后,按照要求配置,都順利的完成,結(jié)果出現(xiàn)問題是:
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里運行,看不到詳細(xì)的錯誤信息。所以,又把程序?qū)氲搅薽yeclipse里運行,結(jié)果出現(xiàn)了同樣的錯誤,但是看到了詳細(xì)的錯誤如下:
(此處只列出了重要的錯誤信息紅色部分,其他的次要信息以省略號代替)
......
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
警告: DbConnectionManager.getConnection() 獲得數(shù)據(jù)庫鏈接失敗.
鏈接類型: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
嚴(yán)重: 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)
......
以上錯誤信息明顯是數(shù)據(jù)庫連接問題,在苦戰(zhàn)了三天之后,終于找到了問題的所在:SQL SERVER 2000版本過低,必須要SP3以上版本才可以?。?!
因為之前安裝過了SP3的補丁,但是SQL server 2000還是顯示的是rtm版本。后來知道那個補丁雖然是exe文件,但是是一個壓縮包,直接點擊安裝根本就安裝不上,所以之前安裝了N次補丁,都沒有安裝上,所以版本總是rtm。正確的安裝方法是先解壓再安裝!
如何查看自己安裝的SQL SERVER 的版本,方法如下:
查詢分析器----》輸入如下語句:
select serverproperty('productversion')
,serverproperty('productlevel')
,serverproperty('edition')
運行,則看得到自己的版本!如圖: