2013年5月27日 星期一

[分享]jspInit中發生java.lang.NullPointerException錯誤

在Tomcat中部署war檔後,開啟網頁,會出現下面錯誤:

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:538)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
 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)
 ....SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
 ...
 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 ...
root cause
java.lang.NullPointerException
 ...._jspInit(Login_jsp.java:22)
 org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
 org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:164)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
 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)
 ...
 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 ....
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.

主要原因是在專案中的WEB-INF/lib下,存在著jsp-api.jar,其版本和Tomcat的版本衝到,將其移除後,重新部署,問題即可解決。

2013年5月23日 星期四

2013年5月15日 星期三

【分享】OCEJWSD (Oracle Certified Expert, Java Platform, Enterprise Edition 6 Web Services Developer),考試編號1Z0-897考試準備

OCEWSD這項認證不像OCPJP(原SCJP)或原SCWCD一樣,坊間都有特定攻略,只要選得對,通常只要念一本就好了。

還好,在國外論壇有找到相關的討論:
http://www.coderanch.com/how-to/java/ScdjwsLinks

這裡有高高手的考試心得:
http://www.coderanch.com/t/565795/sr/certification/passed-OCEJWSD

其中,有些考過的網友回饋必看的有:


上面這位老兄他有賣模擬題,要怎麼買,就利用此頁面中的e-mail聯絡他:

上列頁面中,其中還有一些網友的回饋,看看也可以知道別人是怎麼去準備這項考試的。

另外一位熱心提供準備教材的是Ivan Krizsan,雖然小弟才看一部份而已,但我覺得這份文件的水準,已經超過一般書籍,而且還是免費的:

除了以上,大家還推薦一本動物書:


這本小弟看了一半了,講得還算易懂,主要是他的sample很詳細,可以試跑來熟悉內容。

考試型態

雖然是多選,但會提示真正正確的的選項有幾項,請參考這篇分享

以上報告,請參考了。


2013年5月10日 星期五

【分享】使用Eclipse做java application的debug時,看載入(load)了那些類別(class)

今天在Debug小弟的程式時,在console只出現了
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager
 at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:324)
這幾行紅字,但查來查去,不知道是少放了那個jar,上網查了一下,只要在Eclipse的JVM參數中,下一個-verbose,如下:


在console中,就會列出在執行程式過程中load進來的class,就比較容易看到是那些地方有問題了。