提示:-source 1.3 中不支持泛型(請使用 -source 5 或更高版本以啟用泛型)


 

今天碰到了一個棘手的問題,web頁面老是解析不了,tomcat的log中報錯如下:  

An error occurred at line: 22 in the jsp file: /admin/UserList.jsp     Generated servlet error:     D:\Java\tomcat-5.0.30\work\Catalina\localhost\startshop\org\apache\jsp\admin\UserList_jsp.java:68: -source 1.3 中不支持泛型     (請使用 -source 5 或更高版本以啟用泛型)         List<User> users = new ArrayList<User>();                      ^     1 錯誤
 
對開發環境檢查了個遍,從開發所用JDK到編譯時采用的JDK再到環境變量等一一
 

 

檢查,始終找不到哪里冒出了個JDK 1.3。由此懷疑應該是tomcat的問題。便在網上搜索,基本明白是 Tomcat版本的問題。這里特轉抄 DIY部落( http://www.diybl.com/course/3_program/java/javajs/20071111/85295_2.html)   的一片文章,非常感謝 作者。該作者發現:請求JSP時,Tomcat日志顯示“javac: 目標版本 1.3 與默認的源版本 1.5 沖突”。查看錯誤日志,發現"compilerTargetVM=1.3",應該時Tomcat的JSP編譯時使用的JDK1.3的版本。(我的日志中沒有這么明顯的錯誤提示)。進行如下修改:找到tomcat conf目錄下的web.xml,將這段內容:
 
<servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>xpoweredBy</param-name> <param-value>false</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet>
 
改成下列的配置:
 
<servlet>         
    <servlet-name>jsp</servlet-name>         
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>         
    <init-param>         
        <param-name>compilerSourceVM</param-name>         
        <param-value>1.5</param-value>         
    </init-param>         
    <init-param>         
        <param-name>compilerTargetVM</param-name>         
        <param-value>1.5</param-value>         
    </init-param>         
    <init-param>                 
        <param-name>fork</param-name>                 
        <param-value>false</param-value>         
    </init-param>         
    <init-param>             
        <param-name>compiler</param-name>             
        <param-value>modern</param-value>         
    </init-param>         
    <init-param>                 
        <param-name>xpoweredBy</param-name>                 
        <param-value>false</param-value>         
    </init-param>         
    <load-on-startup>3</load-on-startup>
 </servlet>

 

 
修改之后重啟tomcat就可以了。
      這里偶用的是tomcat 5.0.30,該作者也是。該作者還特意換成tomcat 5.5.0,發現沒有出現上述問題,檢查conf下面的web.xml文件可以發現區別所在。
 
 
 
 

本文出自 “追求架構 夢想生活” 博客,請務必保留此出處http://nihaiou.blog.51cto.com/790190/284227


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM