Resource is out of sync with the file system
Al trabajar con Eclipse o JBuilder (en sus versiones basadas en Eclipse) puede que al cargar un proyecto te salga el siguiente error:
Resource is out of sync with the file system: /fichero/que/sea
Esto normalmente se debe a que se ha editado desde fuera de Eclipse algún fichero (o incluso a veces pasa, no sé porqué, cuando editas con un Eclipse en otro ordenador aunque sea justo la misma versión).
El error parece dramático y la primera vez que aparece temes por el código fuente y te maldices por no haber usado un control de versiones o por no haber hecho backup. Pero que va, la solución es tan tonta como hacer click con el botón derecho del ratón sobre el proyecto y darle a Refresh/Refrescar.
Una tontería, ya veis.
javax.mail.NoSuchProviderException: smtp
Si obtienes esta excepción al intentar enviar por JavaMail puede deberse a varios motivos pero los más usuales son:
- No tienes el mail.jar (o smtp.jar) en el classpath.
- Tienes varias copias de mail.jar (o smtp.jar) en el classpath.
- Tienes el mail.jar (o smtp.jar) en el directorio compartido pero no le hace caso. Veamos este tercer caso:
Como sabrás se puede habilitar un directorio compartido (shared en nuestro ejemplo) y todas las clases y jar que contenga es como si estuvieran en el classpath. Esto se hace modificando el archivo conf/catalina.properties como sigue:
shared.loader=${catalina.home}/shared,${catalina.home}/shared/*.jar
De esta forma todo lo que metas en shared está compartido PERO, al menos en Tomcat 6, y por la razón que sea, si metes el mail.jar ahí no le va a hacer caso y te producirá la excepción “javax.mail.NoSuchProviderException: smtp“. Lo más adecuado es meterlo en $CATALINA_HOME/lib.
java.lang.NoClassDefFoundError: javax/mail/Address
Este es la excepción típica que aparece si no tienes las clases de JavaMail en tu classpath. Bájalas de aquí y recuerda que necesitarás si usas una versión del JDK inferior a la 1.6 también necesitarás en tu classpath el JavaBeans Activation Framework.


