记一次诡异的jetty问题

问题出现

用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

Alt text

他的jetty插件是Run-Jetty-Run 1.3.5-nightly
Alt text

原文地址:https://www.cnblogs.com/wardensky/p/7904238.html