把公司的一个老项目(jdk6+tomcat6)升级到tomcat7.0.100 解决最后闹得很凶的一个ajp协议上传漏洞。结果项目启不来,报错信息:
三月 03, 2020 3:28:04 下午 org.apache.jasper.compiler.JDTCompiler$1 findType
严重: Compilation error
org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.java:372)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:259)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:215)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:109)
at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:122)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1242)
at *************************
从字面看是编译问题。因为服务器上面有多个jdk。我抱着试一试的形态,修改tomcat7里面的catalina.bat第一行强行指定tomcat在老jdk6上面跑:
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_43
结果项目成功启动!