感谢:thinkGhoster的博文
对开发环境检查了个遍,从开发所用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文件可以发现区别所在。
本文详细介绍了如何解决在使用Tomcat版本与JSP编译时使用的JDK版本不匹配导致的日志错误。通过修改web.xml文件中的配置项,将JSP编译时使用的JDK版本更改为与实际开发环境一致的版本,成功解决了编译冲突问题。
444

被折叠的 条评论
为什么被折叠?



