java - Excepción de lanzamiento de clase cuando Same Jar está incluido en WEB-INF/lib y CLASSPATH
servlets jboss (1)
Tengo un archivo .jar agregado a CLASSPATH del archivo de inicio de JBoss 5 (run.bat / run.sh). Este es un contenedor de dependencia al que se hace referencia desde la aplicación basada en servlet. Si utilizo esta configuración, el servlet se carga bien y funciona como se esperaba. Sin embargo, observé que si tengo el mismo jar en el directorio WEB-INF / lib del servlet, recibo una excepción de lanzamiento de clases de la siguiente manera:
ERROR [STDERR] ERROR: com.idoox.wasp.ProtocolRepositoryImpl - Exception in protocolHandler soap, protocolHandler com.server.saaj.soap.SOAP11ProtocolHandler, class space root.wasp-impl.SOAP :
ERROR [STDERR] EXCEPTION:
ERROR [STDERR] com.systinet.saaj.soap.SOAP11ProtocolHandler cannot be cast to org.idoox.wasp.ProtocolHandler
ERROR [STDERR] java.lang.ClassCastException: com.server.saaj.soap.SOAP11ProtocolHandler cannot be cast to org.idoox.wasp.ProtocolHandler
Esto no es un problema ya que no tendré el frasco en ambos lugares, pero me pregunto por qué está sucediendo de esta manera. ¿Este es un problema de carga de clases?
Gracias.
El archivo jar que está mencionando ya estaría disponible con JBoss
. Cuando lo colocas en WEB-INF/lib
; JBoss ya ha cargado la clase del jar
disponible con JBoss y hay conflicto con la clase en la carpeta web-inf
. Las clases cargadas por diferentes clasificadores se tratan como diferentes, incluso si las clases son las mismas.
Cuando das en run.bat
solo hay un archivo jar
cargado. JBoss carga esto y no hay tarros conflictivos.