今天移植一个小项目,出现了java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()异常。
环境描述:
1. ant编译:build.xml中配置了
<jasper verbose="0" uriroot="${webapp.dir}" package="com.messagesolution.webapp.jsp" outputDir="${dist.dir}/src/com/messagesolution/webapp/jsp" webXmlFragment="${dist.dir}/src/web.xml"/>
预编译jsp。
2. 项目是通过Agent类中的main函数启动jetty容器的,通过apache jasper来编译jsp
原因:
原来是类org.eclipse.jdt.internal.compiler.CompilationResult冲突造成的,项目中有jdt.core_3.6.0.v_A58.jar和core-3.1.1.jar两个jar包,这两个jar是eclipse用来编译jsp的插件
jetty就是通过eclipse插件调用jasper来预编译jsp的
解决:
将core-3.1.1.jar包删除,编译通过。