domingo, 11 de octubre de 2020

ECLIPSE muy lento, ¿Cómo espabilarlo?


En máquinas obsoletas, las nuevas versiones de eclipse van muy lentas, para agilizar un poco se puede hacer:

  1. Quitar la opción de               Project   -> Build Automatically
  2. Quitar la validación de JPA: Window-> Preferences -> Validation -> Buscar el JPA de la tabla y desmarcarlo.


Ahora cuando queramos ejecutar en el servidor:
La primera vez al abrir el workspace:
  1. Botón derecho sobre el proyecto: Run As --> Maven Clean
  2. Botón derecho sobre el proyecto: Maven  --> Update project
  3. Apretar el icono de Build

Cuando no se hagan cambios muy significativos, solo se apretara el iocono del Build.


martes, 6 de octubre de 2020

ERROR: no encuentra void com.sun.mail.util.TraceInputStream.(java.io.InputStream, com.sun.mail.util.MailLogger)

 Si se ejecuta en modo aplicación no da ningún problema pero en modo web con Tomcat si los da.


Parece ser segun stackoverflow que hay que añadir la dependencia de maven smtp, a pesar de que hay dependencia a javax.mail y simple-java-mail


<dependency>
  <groupId>com.sun.mail</groupId>
  <artifactId>smtp</artifactId>
  <version>${smtp.version}</version>
</dependency>
        
<dependency>
  <groupId>com.sun.mail</groupId>
  <artifactId>javax.mail</artifactId>
  <version>${javax.mail.version}/version>
</dependency>

<dependency>
  <groupId>org.simplejavamail</groupId>
  <artifactId>simple-java-mail</artifactId>
  <version>${simple-java-mail.version}></version>
</dependency>




viernes, 2 de octubre de 2020

STAX2-API: Error en Eclipse + Tomcat: Caused by: java.lang.NoSuchMethodError: 'org.codehaus.stax2.ri.SingletonIterator org.codehaus.stax2.ri.SingletonIterator.create(java.lang.Object)'

Problema

 El Tomcat no arranca, y es consecuencia de que se han declarado mas de una version de "stax2-api".

Por tanto hay que entrar en el "pom.xml" y comentar las declaraciones duplicadas de dependencias de stax2-api de diferentes versiones.

Esta duplicidad se produce debido a que los test de clases básicas que contienen Hibernate Envers necesitan estas declaraciones en <scope>runtime</scope> para funcionar, mientras en modo web no funcionan. Ver stackoverflow. Y ver también post anterior.

Por tanto cuando se ejecuten los test en modo java application (y no en modo web) hay que descomentarlo

Solución 1

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" 


Solución 2

Utilizar Maven shadow plugin o Gradle shadow plugin