Currently, the BindingDirectory.getFactory method does not take a ClassLoader argument to locate the class that is passed to it. This creates a problem in J2EE (ear deployed) applications, when the jibx-run.jar is at the root of the ear file, and the class being passed in getFactory resides in a web module within that ear file.
Because WebSphere will not "look down" in its classloader hierarchy, it cannot find the class that is being passed in the getFactory method. This means that we must push jibx-run.jar down to the web module level, for all web modules within that ear that use it.
If you overrode getFactory to take a ClassLoader, you could use that classloader to find the class being passed, and this would resolve the problem. Then, I could pass the ClassLoader for my web module "up" to the ear module.