Apache Muse - Conflicting Version of WSDL4J in WebSphere Deployments
When deploying your Muse-based applications on IBM WebSphere Application Server (WAS) 6.0 or 6.1, you need to be aware that Muse relies on WSDL4J 1.6.1 while the server's core libraries include WSDL4J 1.4. If you install your application using the default class loading system, it will fail to start because the Muse framework depends on WSDL4J APIs that are only available in WSDL4J 1.5 and above. To work around this issue, you can configure the server to use the application's class loader before the container or system class loaders; this will ensure that the WSDL4J classes that are in your application's /WEB-INF/lib directory will be loaded before those in $WAS_HOME/lib.
If you are developing and deploying your application through IBM Rational Application Developer (RAD), you can make the required changes by setting the class loader mode to PARENT_LAST and the class loader policy to SINGLE.
If you are installing your application through the WAS admin console, select Enterprise Applications > Your Application > Class loading and update detection. You should then check the boxes labeled as follows:
- Classes loaded with application class loader first
- Single class loader for application
Making these changes should not affect your other (non-Muse) applications because, having no WSDL4J JAR files of their own, the server will continue up the chain of class loaders until the container's class loader discovers WSDL4J 1.4 in $WAS_HOME/lib.