jdk版本 tomcat版本切换导致的异常解决办法

来源:互联网 发布:剑三小光头捏脸数据 编辑:程序博客网 时间:2024/05/18 01:53

情景:

开发机器:eclipse3.x  jdk7, tomcat7.0.x

部署服务器:jdk6,tomcat6.0.x


异常1:部署后

Unsupported major.minor version 51.0错误

原因版本不兼容,即Eclipse编译环境使用的JDK版本是1.70,tomcat的版本是6.0不支持1.70的JDK版本。如要解决问题,即要使两者版本兼容。
解决办法:
1、设置 eclipse 编译设定方法: Windows->Preferance->Java->Compiler-> 页面。将 ..JDK Compliance level->Compiler compliance level 调成 1.6 。系统将自动编译成1.6 版本环境下可以运行的.class文件。(注意系统实际使用的JDK还是1.7,只是最终编译的可执行文件兼容1.6平台)。
2、tomcat6.0升级为7.0,使得一致。这是因为,如果代码使用的是7.0开发的,HttpServletRequest的接口比6.0多了一些,如public AsyncContext getAsyncContext()
从7.0 tomcat编译的代码部署到6.0tomcat上会出现运行错误。当然如果原来的代码是6.0 tomcat开发的,就不用升级了。
reffer:http://hi.baidu.com/liu8563525/item/160f0f5bfe368cccd2e10c36

异常2:
java.lang.ClassNotFoundException: org.apache.tomcat.InstanceManager
我的代码是6.0 Tomcat 开发的,换成了tomcat7(这会导致需要修改继承HttpServletRequest的接口的类),结果换成tomcat6之后,访问某一个jsp的时候报了这个错。原因是原来用tomcat7编译的jsp,在换到tomcat6之后没有重新编译。
解决办法:清空对应work目录的就可以了。
reffer: http://hi.baidu.com/craigwu/item/f8c84847f65bd6e31281da18

注:在eclipse中开发的项目有个java build path中可以配置的jdk,还有个java compiler中可以配置compiler level,这两个是有区别的,build path的JDK版本是你开发的时候编译器需要使用到的,就是你在eclipse中开发代码,给你提示报错的,编译的过程;java compiler compliance level中配置的编译版本号,这个编译版本号的作用是,你这个项目将来开发完毕之后,要放到服务器上运行,那个服务器上JDK的运行版本

在eclipse中进行开发的时候,build path 中JDK进行类库的编译(就是你使用类在不在这个JDK中),java compiler compliance level是对这个项目语法的编译(就是你的项目中语法的正确与否),在开发的过程中,这两个地方是都起作用的。所以说,最最安全的做法,是build path 和 java complier compliance level和服务器配置的JDK都保持一致,就不会出现任何问题的。

http://www.cnblogs.com/cczhoufeng/archive/2013/01/28/2879552.html

0 0
原创粉丝点击