I would like the same war file to be able to be deployed to both Apache Geronimo and JBoss 4.2. Geronimo's server lib does not contain jsf-impl and jsf-api and hence requires these jar files to be added to the lib directory of the war. A ClassCastException is thrown when deploying the war containing jsf-impl and jsf-api to JBoss. My presumption is this is due to the classes already existing in JBoss's server lib (version conflict). Obviously, I could create separate archives for each application server. This just doesn't feel correct. To no avail, I tried to configure JBoss through the jboss-web.xml to give precedence to the archives packaged in the applications war through classloader isolation and a Java2ParentDelegation set to false. My jboss-web.xml looks like this:
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd"> <jboss-web> <context-root>/myapp</context-root> <class-loading java2ClassLoadingCompliance="false"> <loader-repository> myapp:loader=myapp.war <loader-repository-config>java2ParentDelegation=false</loader-repository-config> </loader-repository> </class-loading> </jboss-web>
Can someone steer me in the correct direction? Is there a problem with the configuration settings I put in the jboss-web.xml? Am I off the mark and what I am trying to do is just not possible?