java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult

He creado un servicio web en netbeans 6.7 y un proyecto para el cliente. El servicio web tiene un método que realiza algunas consultas desde la base de datos y me devuelve una matriz. Llamar al método de servicio web en el archivo client.jsp en el servicio de clientes web da error:

javax.servlet.ServletException: java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IProblem;
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:273)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IProblem;
    org.apache.jasper.compiler.JDTCompiler$2.acceptResult(JDTCompiler.java:354)
    org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:398)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:425)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:299)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
`

He importado tarros de hadoop.

Respuesta 1

Me encontré con la misma excepción contigo. En mis casos, es causado por los conflictos de la biblioteca de embarcadero con las bibliotecas Hadoop / HBase (tal vez ambas contienen el método org.eclipse.jdt.internal.compiler.CompilationResult). Resuelvo este error agregando las siguientes exclusiones en las dependencias de Hadoop / HBase:

      <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>${hadoop.version2}</version>
      <exclusions>
        <exclusion>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-util</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jsp-2.1</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jsp-api-2.1</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>servlet-api-2.1</artifactId>
        </exclusion>
        <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>tomcat</groupId>
            <artifactId>jasper-compiler</artifactId>
        </exclusion>
        <exclusion>
            <groupId>tomcat</groupId>
            <artifactId>jasper-runtime</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
Respuesta: 2

intente ejecutar eliminando ecj-xxxjar de su biblioteca tomcat

Respuesta: 3

Tiene varias versiones de la biblioteca que contiene org.eclipse.jdt.internal.compiler.CompilationResulten su classpath, y están ordenadas para que una versión en la que el método CompilationResult.getProblems()no exista (o se haya cambiado de manera incompatible) aparezca primero en el classpath, probablemente porque lo proporciona cualquier contenedor que esté rodaje.

Soluciones posibles:

  • Reordena el classpath para evitar el problema
  • Si se trata de un proyecto de Maven, excluya los JAR duplicados como dependencias (en NetBeans, expanda el nodo Bibliotecas y haga clic con el botón derecho en la biblioteca y elija Excluir dependencia del menú emergente)
Respuesta: 4

Tuve el mismo problema con los frascos de hadoop que a su vez dependen de algunos paquetes de embarcadero. Lo resolví colocando las siguientes exclusiones en la dependencia infractora:

<exclusions>
  <exclusion>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>servlet-api</artifactId>
  </exclusion>
  <exclusion>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>servlet-api-2.5</artifactId>
  </exclusion>
  <exclusion>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jsp-2.1</artifactId>
  </exclusion>
  <exclusion>
    <groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-api-2.1</artifactId>
  </exclusion>
</exclusions>
Respuesta: 5

Excluí las siguientes dependencias de "org.apache.hbase" en el archivo pom.xml

<exclusion>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty</artifactId>
</exclusion>
<exclusion>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-util</artifactId>
 </exclusion>
 <exclusion>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jsp-2.1</artifactId>
 </exclusion>
<exclusion>
     <groupId>org.mortbay.jetty</groupId>
     <artifactId>jsp-api-2.1</artifactId>
</exclusion>
<exclusion>
     <groupId>org.mortbay.jetty</groupId>
     <artifactId>servlet-api-2.1</artifactId>
</exclusion>
<exclusion>
    <groupId>tomcat</groupId>
    <artifactId>jasper-compiler</artifactId>
</exclusion>
<exclusion>
    <groupId>tomcat</groupId>
    <artifactId>jasper-runtime</artifactId>
</exclusion>

Esto resolvió mi problema

Respuesta: 6

En mi caso, se debió a un conflicto de dependencia, pero es difícil descubrir qué jarra es la causa del conflicto.

Entonces, para verificar el conflicto, en pom.xml hay una Dependency Hierarchypestaña en eclipse. En la Resolved Dependencysección verifique si hay dos frascos con el mismo nombre. Si se encuentra, excluya uno de ellos de la dependencia principal.

ingrese la descripción de la imagen aquí

En mi caso, era jsp-api jar. Al hacer clic en jsp-api jar descubrí que la dependencia principal es activemq-core, así que excluí jsp-api jar de la dependencia activemq-core y funciona bien.

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-core</artifactId>
    <version>5.6.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jsp-2.1</artifactId>
         </exclusion>
        <exclusion>
             <groupId>org.mortbay.jetty</groupId>
             <artifactId>jsp-api-2.1</artifactId>
        </exclusion>
    </exclusions>
</dependency>
Respuesta: 7

También tuve el problema similar y todas estas respuestas no resolvieron mi problema. Estaba usando drools en spark e implementé mi código usando java. Obtuve el mismo error en el clúster (en el sistema local en eclipse funcionaba bien), la causa de este problema fue el archivo ecj-xxxjar. En el clúster, estaba presente otra versión del archivo jar que creaba el problema de compilación del archivo drool (archivo .drl). Entonces, en driver classpath, agregué externamente la versión actual del archivo jar ecj y funcionó para mí.

Comando que utilicé durante el envío de chispas:

spark2-submit --driver-class-path ecj-4.4.2.jar --class Yourclass Yourbundeledjarfile.jar
Respuesta: 8

Comencé a trabajar en hadoop y quería integrarme para ser puesto en hadoop desde la aplicación. SO agregó dependencia de hadoop maven y todos estos errores arrojados por la aplicación. Una vez que eliminé mi dependencia de hadoop, desaparecieron los errores.

Respuesta: 9

Lo arreglé usando la versión correcta de la API de Servlet: Tomcat 7.x espera la versión 3.0.x, no la 3.1.x que intenté usar. Consulte también ' ¿Qué me dice la clase infractora al iniciar el servidor?'

Respuesta: 10

Estoy desarrollando una aplicación Swing en Java. El programa se ejecutará en máquinas dedicadas con pantalla táctil de Windows 7, y que yo sepa, este programa debería ser lo único que se ejecuta en ...

Hola, tengo un panel de cuadrícula y para uno de los nodos quiero que pueda ocupar toda la fila. pero parece que no puedo entender cómo usar GridPane.setColumnSpan (nodo, intervalo de columna); Heres mi código de cuadrícula ...

A partir de la versión 8, FreeBSD admite la opción de socket IP_BINDANY que la página del manual define como: Si la opción IP_BINDANY está habilitada en un SOCK_STREAM, SOCK_DGRAM o un socket SOCK_RAW, uno puede ...

Tengo la siguiente clase genérica: clase O <A, B> {O (A a) {} O (B b) {}} ¿Por qué obtengo el siguiente error cuando intento compilarlo? O (A) ya está definido en Or Or (B b) ^ ...