Search code examples
jenkinsweblogicweblogic12c

Install Jenkins 2.121.2 on weblogic 12.1.13


I am trying to install Jenkins 2.121.2 on weblogic 12.1.13. After the installation, ManagedServer is in Running state and also Jenkins in weblogic shows Active state. But, managedserver log shows the following error message:

Jenkins home directory: /home/weblogic/.jenkins found at: $user.home/.jenkins
Aug 14, 2018 12:52:17 PM hudson.util.BootFailure publish
SEVERE: Failed to initialize Jenkins
hudson.util.HudsonFailedToLoad: java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.readLines(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/util/List;
        at hudson.WebAppMain$3.run(WebAppMain.java:247)
Caused by: java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.readLines(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/util/List;
        at hudson.ClassicPluginStrategy.configLines(ClassicPluginStrategy.java:452)
        at hudson.ClassicPluginStrategy.<clinit>(ClassicPluginStrategy.java:438)
        at hudson.PluginManager.createPluginStrategy(PluginManager.java:1128)
        at hudson.PluginManager.<init>(PluginManager.java:328)
        at hudson.LocalPluginManager.<init>(LocalPluginManager.java:50)
        at hudson.LocalPluginManager.<init>(LocalPluginManager.java:58)
        at hudson.PluginManager.createDefault(PluginManager.java:253)
        at jenkins.model.Jenkins.<init>(Jenkins.java:894)
        at hudson.model.Hudson.<init>(Hudson.java:85)
        at hudson.model.Hudson.<init>(Hudson.java:81)
        at hudson.WebAppMain$3.run(WebAppMain.java:233)
   Truncated. see log file for complete stacktrace
>
Aug 14, 2018 12:52:21 PM jenkins.model.Jenkins cleanUp
INFO: Stopping Jenkins
Aug 14, 2018 12:52:21 PM jenkins.model.Jenkins$19 onAttained
INFO: Started termination
Aug 14, 2018 12:52:21 PM jenkins.model.Jenkins$19 onTaskFailed
SEVERE: Failed IOHubProvider.cleanUp
java.lang.IllegalArgumentException: Unable to inject class jenkins.slaves.IOHubProvider
        at hudson.init.TaskMethodFinder.lookUp(TaskMethodFinder.java:125)
        at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:105)
        at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175)
        at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
        at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
        at jenkins.model.Jenkins$18.execute(Jenkins.java:3338)
        at org.jvnet.hudson.reactor.Reactor$Node.runIfPossible(Reactor.java:139)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:128)
        at jenkins.model.Jenkins$18.execute(Jenkins.java:3338)
        at org.jvnet.hudson.reactor.Reactor$Node.runIfPossible(Reactor.java:139)
        at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:276)
        at jenkins.model.Jenkins._cleanUpRunTerminators(Jenkins.java:3335)
        at jenkins.model.Jenkins.cleanUp(Jenkins.java:3256)
        at hudson.WebAppMain$3.run(WebAppMain.java:254)

http://hostname:7001/jenkins gives me 404.

I also tried the methods described in Installation of Jenkins into Weblogic , that also didn't help, I got the same error mentioned above.


Solution

  • Create a weblogic.xml file that looks like the following:

    <?xml version="1.0" encoding="UTF-8"?>
    <wls:weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
        <wls:weblogic-version>12.1.3.0.0</wls:weblogic-version>
        <wls:context-root>jenkins</wls:context-root>
        <wls:container-descriptor>
                <wls:prefer-web-inf-classes>false</wls:prefer-web-inf-classes>
                <wls:prefer-application-packages>
                <wls:package-name>com.google.common.*</wls:package-name>
                <wls:package-name>org.jvnet.*</wls:package-name>
                <wls:package-name>org.apache.commons.io.*</wls:package-name>
                </wls:prefer-application-packages>
        </wls:container-descriptor>
    </wls:weblogic-web-app>
    

    Drop this file in the WEB-INF directory of the war file. Note: this was tested on Oracle WebLogic 12.1.13 and 12.2.1

    The following elements instruct weblogic to load the packages org.apache.commons.io.* from the jar file in weblogic.war file and that resolved the error I was getting.

    <wls:prefer-application-packages>
    <wls:package-name>org.apache.commons.io.*</wls:package-name>