问题出现
用eclipse开发,用jetty跑某个项目时,如果是jsp页面,会出现以下错误。
------------------------------------------------
java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IProblem;
at org.apache.jasper.compiler.JDTJavaCompiler$2.acceptResult(JDTJavaCompiler.java:442)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:478)
at org.apache.jasper.compiler.JDTJavaCompiler.compile(JDTJavaCompiler.java:503)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:368)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:437)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608)
at
篇幅原因省略
问题解决思路1
既然出现了问题,第一时间肯定是想着调试,加了几个断点跟代码。跟着跟着就跟没了,而且看报错,不是我们的自己代码的问题。马上转换思路。
问题解决思路2
开始搜索这个问题。18+1之前,我的鱼摆摆还能用,现在没有了,只好用bing。bing搜索出来很多结果,大概意思就是jar包冲突,比较有代表性的是这几个。
org.eclipse.jdt.internal.compiler.CompilationResult.getProblems
JAVA.LANG.NOSUCHMETHODERROR:
javax.servlet.ServletException:
反正所有的意思都是jar包冲突。我就使劲在pom.xml里面找冲突的jar包,找了很久也没找到,放弃了这个思路。
这个思路用的时间最长。
问题解决思路3
既然jetty不行,那就换tomcat吧。
tomcat的配置都比较简单,很快就能tomcat跑了。
但是tomcat还是不方便,于是又想搞一下jetty。
问题解决思路4
同样一个项目,在我同事那里是可以跑的,我们不同的一个是操作系统(mac、windows),一个是jetty的插件。我怀疑是jetty插件的问题。
我安装了他的jetty插件,再试一下,果然好了。
我的jetty插件是Eclipse Jetty 3.9.0
他的jetty插件是Run-Jetty-Run 1.3.5-nightly