Hudson is an excellent continuous integration engine !
But if you have already tried to use it on WebLogic, you may have encoutered the following error :
This error translated in English says :
"Your servlet container loaded its own Ant version, preventing Hudson to work.
Maybe you could try to fix that by either copying the Hudson lib in your container, or reversing the classloader tree with the child-delegation-first."
If you already read about the FilteringClassLoader mechanism article, it should ring a bell to you ! :)
Well, that's exactly what we are going to do here.
First, as Hudson is available only in WAR format, we are going to create an EAR (because the filteringClassLoader only applies to enterprise applications).
It's easy : just add a "META-INF" folder, like :
Your weblogic-application.xml should look like :
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-application xmlns:wls="http://www.bea.com/ns/weblogic/weblogic-application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<!-- server-version: 10.3 -->
In blue, we declared the org.apache package to be loaded from the application first.
Then after that, zip the content (and NOT your root folder) of your root folder such as :
Then deploy it on WebLogic and you should normally be able to access Hudson !