Die Beispielapplikation und JBoss 4.0.2

[ Hauptseite ]

Zwischen JBoss 4.0.1 und 4.0.2 haben sich die Einstellungen zum Laden von Klassen innerhalb des Webcontainers geändert. Mittlerweile ist der UCL standardmäßig abgeschaltet (JBServer/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml):

<!-- A flag indicating if the JBoss Loader should be used. This loader
  uses a unified class loader as the class loader rather than the tomcat
  specific class loader.
  The default is false to ensure that wars have isolated class loading
  for duplicate jars and jsp files.
 -->
 <attribute name="UseJBossWebLoader">false</attribute>
Dies hat zur Folge, dass Klassen, die sowohl im .war innerhalb des .ear, als auch im .jar vorhanden sind (Facade.class, FacadeHome.class, AddrBean.class) damit von zwei unterschiedlichen Classloadern geladen werden, wodurch es zu ClassCastExceptions kommt.
Werden die angegebenen Klassen aus dem .war genommen, werden sie nur durch den Cassloader des .jar geladen und in das Repository des .ear gepackt, von wo sie das .war auch bekommt.

Um diese Änderung durchzuführen, dürfen die entsprechenden Klassen nicht mehr im war-Task von build.xml zur .war-Datei hinzugefügt werden (und sind im folgenden einfach auskommentiert).

<classes dir="${gen-class.dir}">
	<include name="**/servlets/*.class"/>
<!--									
	<include name="**/beans/*.class"/>
	<include name="**/ejb/Facade.class"/>
	<include name="**/ejb/FacadeHome.class"/>
-->				
</classes>			
Dies betrifft die entsprechenden Listing auf Seite 46 und Seite 69 oben.

Ich habe am 21.5.05 die Beispieldateien entsprechend aktualisiert.

[ Hauptseite ]