Migrando una app que usa Seam 3 en JBoss 6.1.0.Final (Neo) a JBoss 7.1.1.Final (Brontes) aparecen un montón de errores (INFO o WARN, por lo que no bloquean el deploy) de que el class loader no puede encontrar org.joda.time.DateTimeZone… transcribo unos cuantos para ejemplificar
INFO [org.jboss.weld.ClassLoading] (MSC service thread 1-3) catching: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class org.jboss.seam.international.datetimezone.UserDateTimeZoneProducer Caused by: java.lang.NoClassDefFoundError: Lorg/joda/time/DateTimeZone; WARN [org.jboss.modules] (MSC service thread 1-3) Failed to define class org.jboss.seam.international.datetimezone.ForwardingDateTimeZone Caused by: java.lang.NoClassDefFoundError: org/joda/time/DateTimeZone etc.
una solución fácil es añadir la dependencia a Joda Time, lo cual con maven se haría así
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.0</version> </dependency>
Al parecer ésto se debe a que en el pom de JBoss 7 esta dependencia está como optional >> (si bien el post es de JBoss 7 CR1, el problema aún existe en 7.1.1.Final)
Así mismo falta la dependencia a Pretty Faces >> (pero agregarla trae más warnings a apache commons, etc.)
Y a org.drools.KnowledgeBase y org.drools.runtime.ObjectFilter…
En todo caso, se trata de dependencias opcionales que debieran activarse sólo si necesario (usan @Requires), y en el fondo el class loader se está quejando de más >> y puede ignorársele