首页 > 解决方案 > 在 weblogic 12.1.13 上安装 Jenkins 2.121.2

问题描述

我正在尝试在 weblogic 12.1.13 上安装 Jenkins 2.121.2。安装后,ManagedServer 处于 Running 状态,weblogic 中的 Jenkins 也显示 Active 状态。但是,managedserver 日志显示以下错误消息:

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给了我 404。

我还尝试了Installation of Jenkins into Weblogic中描述的方法,但也没有帮助,我得到了上面提到的相同错误。

标签: jenkinsweblogicweblogic12c

解决方案


创建如下所示的 weblogic.xml 文件:

<?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>

将此文件放到war 文件的WEB-INF 目录中。注意:这是在 Oracle WebLogic 12.1.13 和 12.2.1 上测试的

以下元素指示 weblogic 从 weblogic.war 文件中的 jar 文件加载包 org.apache.commons.io.* 并解决了我遇到的错误。

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

推荐阅读