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

情景:

开发机器: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开发的,就不用升级了。

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

注:在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值