2012-03-09 12 views
34

Estoy desarrollando una aplicación Spring/Vaadin/Hibernate.Eclipse La jerarquía del tipo ... no es coherente con la anotación @Configurable

Todo funciona, pero todavía tengo los siguientes marcadores de error en Eclipse STS 2.8.1:

The hierarchy of the type BankView is inconsistent 
The hierarchy of the type AbstractEntityView is inconsistent 

He la siguiente estructura para mis puntos de vista:

public class BankView extends AbstractEntityView { 
    @Resource private BankService bankService; 

    public void buildLayout() { 
     super.buildLayout(); 

     // Use of the service here 
    } 
} 

public abstract class AbstractEntityView extends AbstractView { 
    public void buildLayout() { 
     verticalLayout = new VerticalLayout(); 
     verticalLayout.setSpacing(true); 
     verticalLayout.setSizeFull(); 
     setContent(verticalLayout); 
     super.buildLayout(); 
    } 
} 

@Configurable(preConstruction = true) 
public abstract class AbstractView extends com.vaadin.ui.VerticalLayout { 
    public AbstractView() { 
     super(); 
     try { 
       buildLayout(); 
     } 
     catch (AccessDeniedException e) { // Spring Security 
       System.out.println("GTFO !"); 
     } 
    } 
} 

lo que está causando estos marcadores de error ?

+2

Ese mensaje de error es generalmente debido a un mal classpath. Intente reconstruir todo el proyecto, que generalmente da un error más útil, – skaffman

+0

Primero, gracias por la respuesta;) Ya he intentado construirlo, nada ha cambiado. Intenté Project> Clean ... no funcionó. En mi classpath, traté de cambiar el orden de las bibliotecas, nada cambió:/ – c4k

+0

posible duplicado de [Error de compilación de Eclipse: la jerarquía del tipo 'Nombre de clase' es inconsistente] (http://stackoverflow.com/questions/ 8520090/eclipse-compilation-error-the-hierarchy-of-the-type-class-name-is-inconsisten) –

Respuesta

1

De hecho, el problema se debe a que hice AbstractListView @Configurable. Cuando puse esta anotación en la clase final (por ejemplo, BankView), todos los errores desaparecieron.

Gracias a todos por la ayuda. Si alguien tiene el mismo error, encontrará una solución en las diferentes respuestas.

49

En mi caso, encontré que el error The hierarchy of the type ... is inconsistent en Eclipse era causado por una clase de archivo jar desde la que extendía mi clase haciendo referencia a una clase que no estaba en la ruta de compilación.

Así que si usted tiene:

// in other.dep.jar 
class FromOtherDepJar {} 

// in dep.jar 
class FromDepJar extends FromOtherDepJar {} 

// in the current project 
class ProblematicClass extends FromDepJar {} 

Si dep.jar está en la ruta de clase del proyecto, pero no es other.dep.jar, Eclipse se mostrará el error The hierarchy of the type ... is inconsistent.

Eche un vistazo a la Vista de problemas en Eclipse, la columna Descripción es más prolija sobre cuál es el problema real que sobrevolver.

+0

Me estaba poniendo "La jerarquía del tipo GreetTheWorldFixture es inconsistente", mientras que el tutorial fitness, resulta que estaba falta el fitnesse.jar en mi classpath de proyectos, gracias por la respuesta! –

+0

El enlace no funciona –

+1

@ Enlace GáborLipták eliminado, IIRC indicó la misma causa para el problema – Alex

0

Existe la posibilidad de que sus dependencias de expertos no sean reconocidas. Vea si tiene Maven habilitado para este proyecto en particular. En Eclipse Maven se puede activar haciendo clic derecho en el proyecto y elegir Maven -> Habilitar dependencias Maven.

1

Reconfigurar la ruta de compilación para resolver el problema.

0

En mi caso estaba usando la versión de JRE incorrecta.

1

¿Intentó cerrar y abrir eclipse? A veces ayuda. Mi eclipse (probablemente porque estoy en una plataforma de Windows) a menudo muestra errores como ese, la única solución es salir del eclipse y volver a abrir más tarde.

0

Tuve este problema cuando agregué actionbarsherlock a mi proyecto de Android y olvidé eliminar la biblioteca de soporte de mi proyecto original. La solución es eliminar android-support-v4.jar de su proyecto y limpiar el proyecto ... debe cargar la biblioteca de la carpeta actionbarsherlock.

1

Otra causa es una referencia a una superclase o superinterfaz que existe, pero está en un paquete diferente, y no se importa ni se califica completamente.

Esto se me ocurrió después de usar la refactorización de Eclipse para mover las clases abstractas heredadas de una interfaz anidada. Después del movimiento, todas las subclases tenían el mensaje "la jerarquía del tipo X es inconsistente". El problema se resolvió importando a mano en las clases abstractas que se habían movido.

0

Sé que esto probablemente no es el caso aquí, pero sólo para la información adicional de este error puede ser causado cuando se utiliza una jerarquía de interfaces y hay algún error (como los genéricos equivocadas) en algún lugar más alto en la jerarquía de

0

Este error también aparece cuando la biblioteca android-support no coincide, es decir, cuando dos bibliotecas externas que usted usa tienen dos versiones de la biblioteca de soporte que muestra este error, (lo que hice fue hacer ambas versiones borrando una y copiando el soporte de otra biblioteca de terceros para este)

0

El error dice que le falta el JAR al que se hace referencia.

En mi caso, recibí este error al crear un proyecto Spring MVC. Me perdí la tarea de agregar archivos JAR relacionados (spring-context-4.1.0.RELEASE.jar & spring-web-4.1.0.RELEASE.jar) en la ruta de compilación.

Aunque ya se han agregado Spring JARs (Núcleo, Frijoles, AOP & MVC), los archivos JAR mencionados anteriormente también son necesarios. Una vez que agregué otros JAR, el error desapareció.

1

Mi problema era que las clases/jarras se recompilaban manualmente fuera de Eclipse usando las tareas ant y gradle. Actualizar todos los proyectos y reconstruir en eclipse hizo que los errores desaparecieran.

0

He resuelto este error La jerarquía de la ServiceController tipo es incompatible problema mediante la eliminación de todo Referenced Libraries de frascos en Build Path y volver a agregar todos los frascos en Eclipse IDE.

0

He resuelto este problema agregando javax.servlet-api-3.0.1.jar. mi herramienta de desarrollo es Eclipse, pero mi proyecto fue desarrollado bajo el myeclipse, luego cuando importé el proyecto en eclipse, lanza "la jerarquía del tipo SysUserFilter es inconsistente", así que creo que myeclipse proporciona automáticamente javax.servlet-api-3.0 .1.jar, pero eclipse no.so necesario para importar manualmente.

0

Ve y comprueba realmente tu ruta de compilación (Propiedades del proyecto => Java Build Path => Bibliotecas) y el cuadro de diálogo puede mostrarte que falta algo. Este era mi problema, donde el proyecto estaba funcionando pero luego de uno o dos meses dejó de funcionar porque mi configuración de JRE cambió.

Cuestiones relacionadas