A big thank you for this blog by Maxence Button and this blog by Gatux for the Weblogic expertise to get Jenkins running. Jenkins can be downloaded from jenkins-ci.org site as a WAR file. However, it cannot be deployed to Weblogic without some changes. These are necessary because of Weblogic's proprietary class loaders which behave badly compared to Tomcat, JBoss, et. al.
Note: Tested on Jenkins 1.500
Drop this file in the WEB-INF directory of the war file. Note: this was tested on Oracle WebLogic 12.1.1.c.
Use this Oracle recommended nomenclature which ensures the version of package 'com.google.common.*' contained in the Jenkins war is used ahead of the system class loader version. The newer version contains a method required by Jenkins.
<?xml version="1.0" encoding="UTF-8"?>
Note: Tested on Jenkins 1.477 & 1.482
Drop this file in the WEB-INF directory of the war file. Note: this was tested on Oracle WebLogic 10.3.4.x.
Since Weblogic does not ship with these classes you will get an error: ClassNotFoundError : org.apache.commons.logging.impl.SLF4JLocationAwareLog
Copy a jcl-over-slf4j-1.6.2.jar into the WEB-INF/lib dir of the jenkins.war file to correct this error. You can download a jar here
Note: this installation was tested using Hudson 1.391 and Weblogic 10.3.
To correct Weblogic's class loader problems, we need to build an EAR file and put the weblogic-application.xml directives into it.
Once you create the ROOT_Folder,
Weblogic needs this because (unlike JBoss, Tomcat, Jetty et. al) Weblogic will not load the JARs in the WAR before the Weblogic installed JARs, and usually the resulting error is that there is an old version of Ant 1.7 in scope, instead of Ant 1.8.x as Jenkins wants. There is also a conflict with stax-api-1.0.1.jar for the javax.xml package listed.
Here is a simple application.xml that will work
You can use your favorite file zip tool to create the ear file, I used 7zip. Just verify that the file is named jenkins.ear and that it has the original WAR file and the META-INF dir in its root.
Use your favorite method to install the jenkins.ear into the Weblogic server. Note: remember to delete any old Jenkins WAR or EAR deployments first.
The application will deploy to http://serverName:port/jenkins.
Skip to end of metadata Go to start of metadata