1. 程式人生 > >java.lang.NoSuchMethodError:org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/e

java.lang.NoSuchMethodError:org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/e


異常程式碼

java.lang.NoSuchMethodError:org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IProblem;

問題來源

在同一個Tomcat容器中部署2個工程時產生,異常症狀有:
  1. 1個工程啟動正常,2個工程則都產生異常

問題說明

  1. 每個工程都有一個名稱標識,預設名為:app.root ,
  2. 如果在工程中沒有指定名稱標識,那麼則為app.root
  3. 當2個同名的標識在一個容器時,如果2個工程使用有相同的包則會產生衝突,導致工程異常

解決方案

在web.xml中配置標識名,param-value的值,隨意。
<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>app.root</param-value>
</context-param>