Según StackOverflow, hay que entrar en la carpeta "Servers" y buscar un duplicado de "<Context ....></Context> y borrarlo
miércoles, 30 de septiembre de 2020
martes, 29 de septiembre de 2020
Conflicto de librerias de Hibernate Envers: java.lang.NoSuchMethodError: org.codehaus.stax2.ri.EmptyIterator.getInstance()
Problema (ir al apartado de solución)
El problema viene que hay un conflicto de dependencias de la stax2-api pues se uilizan distintas versiones.
El sistema de compilación de Maven parece ser que elimina las versiones mas viejas, por tanto cualquier referencia a métodos que se encuentren excluisivamente en versiones viejas, dan error de "runtime" que en este caso indica que no encuentra el método.
Para solucionarlo hacemos uso de <scope>runtime</scope> en cada una de las dependencias antigua que queremos.
Su suso está bien explicado en Baeldung y en mi caso tenía que suministrar las versiones 4.2.1 y la 3.1.4
Quedando en el pom.xml este fragmento
<dependency> <groupId>org.codehaus.woodstox</groupId> <artifactId>stax2-api</artifactId> <version>4.2.1</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.codehaus.woodstox</groupId> <artifactId>stax2-api</artifactId> <version>3.1.4</version> <scope>runtime</scope> </dependency>
Solución buena
20/01/2022. Se puede solucionar lo de Hibernate Envers utilizando la nueva implementación de jakarta que no utiliza el stax2-api
implementation 'org.hibernate:hibernate-core-jakarta:5.6.3.Final' implementation 'org.hibernate:hibernate-envers-jakarta:5.6.3.Final' //implementation "org.hibernate:hibernate-testing-jakarta:5.6.3.Final' implementation "org.hibernate:hibernate-validator:7.0.2.Final"
jueves, 17 de septiembre de 2020
JPA Problema: @MappedSuperClass No reconoce el @Id las clases hijas
Problema:
Tenemos una clase anotada con @MappedSuperClass a la que defibnimos un campo con la notación @Id y queremos que este campo se herede para todas las clases hijas,
El problema surge cuando:
1. Anotamos con @Entity a las clases hijas y
2. Las clases hijas están en otro paquete
Entonces Eclipse se queja diciendo que:
"The entity has no primary key attribute defined"
Solución:
Añadir la clase madre(la del @MappedSuperClass) con una tag <class> al fichero "persistence.xml" si este tiene la etiqueta <exclude-unlisted-classes> a true
martes, 15 de septiembre de 2020
JSON XML + LOMBOK + SICRES 3.0 Problemas de mapeado de clases
Tenemos el siguiente error
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `openadmin.model.sicres.DeInteresado` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('E')
Solución:
Cambiar este código:
XmlMapper mapper = new XmlMapper();
Por este
JacksonXmlModule xmlModule = new JacksonXmlModule(); xmlModule.setDefaultUseWrapper(false); ObjectMapper mapper = new XmlMapper(xmlModule); mapper.registerModule(new JaxbAnnotationModule()); // Accept JAXB Annotations !!!!
para que acepte JAXB annotations!