eclipse專案中request.getLocalPort()方法報錯:
eclipse專案編譯報錯The method getLocalPort() is undefined for the type HttpServletRequest
原因及解決辦法:
j2ee.jar包中的servlet版本或者是jboss中的servlet-api.jar包的版本比較舊,當servlet版本低於2.4時,HttpServletRequest類中不存在getLocalPort()方法。可以下載高於2.4版本的jar包替換掉舊的jar包,重新編譯,能夠解決問題。
jar包檢視版本方法:
使用解壓縮軟體開啟jar包,開啟META_INF資料夾,使用檔案編輯器檢視MANIFEST.MF檔案,即可找到規範版本資訊和執行版本資訊。
j2ee.jar包中的META_INF資料夾圖示:
j2ee.jar包中的MANIFEST.MF檔案檔案圖示:
MANIFEST.MF內容圖示:
serverlet各個版本和各個版本之間的區別 (僅作參考):
Servlet 3.0 December 2009 JavaEE 6, JavaSE 6 Pluggability, Ease of development, Async Servlet, Security, File Uploading
Servlet 2.5 September 2005 JavaEE 5, JavaSE 5 Requires JavaSE 5, supports annotations
Servlet 2.4 November 2003 J2EE 1.4, J2SE 1.3 web.xml
Servlet 2.1 November 1998 Unspecified First official specification, added RequestDispatcher, ServletContext
Servlet 2.0 JDK 1.1 Part of Java Servlet Development Kit 2.0
Servlet 1.0 June 1997 undefined