提示:-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