tomcat版本引发的问题-source 1.3中不支持泛型

tomcat版本引发的问题-source 1.3中不支持泛型

      今天碰到了一个棘手的问题,web页面老是解析不了,报错如下:

                  -source 1.3中不支持泛型。(请尝试使用-source 1.5以启用泛型) 

      对开发环境检查了个遍,从开发所用JDK到编译时采用的JDK再到环境变量等一一检查,始终找不到哪里冒出了个JDK 1.3。由此怀疑应该是tomcat的问题。便在网上搜索,终于明白了问题所在:Tomcat版本。这里特转抄署名“渴望报表”的朋友的一篇文章,在此对该朋友表示万分感谢。

     请求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文件可以发现区别所在。

你可能感兴趣的:(jdk,tomcat,jsp,servlet,报表,compiler)