1

UNIX サーバーに Jenkins をインストールしました。
Windows マシンにスレーブをインストールしようとしています。
最初に Windows 2008 サーバーで試して失敗し、次に自分のマシンである Widows 7 で試して失敗しました。

JenkinsサーバーのURLはhttp://unixserver:9997

ファイアウォールを介して自分のマシンでポート 9997 を開きましたが、成功しませんでした。

サーバーに行くと、ログの下に私のスレーブ名のディレクトリがあります。内部には、slave.log というログ ファイルがあります。

Webランチャーまたはコマンドラインからスレーブを起動しようとしました:

java -jar slave.jar -jnlpUrl http://unixserver:9997/computer/slave1/slave-agent.jnlp -secret xxxxxxxxxxxxxxxxxxxxx

そこに与えられたエラーは次のとおりです。

java.io.IOException: Remote call on ghas1 failed
        at hudson.remoting.Channel.call(Channel.java:723)
        at org.jenkinsci.modules.slave_installer.impl.ComputerListenerImpl.onOnline(ComputerListenerImpl.java:32)
        at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:505)
        at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:347)
        at jenkins.slaves.JnlpSlaveAgentProtocol$Handler.jnlpConnect(JnlpSlaveAgentProtocol.java:122)
        at jenkins.slaves.JnlpSlaveAgentProtocol2$Handler2.run(JnlpSlaveAgentProtocol2.java:100)
        at jenkins.slaves.JnlpSlaveAgentProtocol2.handle(JnlpSlaveAgentProtocol2.java:44)
        at hudson.TcpSlaveAgentListener$ConnectionHandler.run(TcpSlaveAgentListener.java:154)
Caused by: java.lang.NoClassDefFoundError: org/jvnet/localizer/Localizable
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.getDeclaredMethod(Unknown Source)
        at java.io.ObjectStreamClass.getPrivateMethod(Unknown Source)
        at java.io.ObjectStreamClass.access$1700(Unknown Source)
        at java.io.ObjectStreamClass$2.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.io.ObjectStreamClass.<init>(Unknown Source)
        at java.io.ObjectStreamClass.lookup(Unknown Source)
        at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
        at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
        at java.io.ObjectInputStream.readClassDesc(Unknown Source)
        at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
        at java.io.ObjectInputStream.readClassDesc(Unknown Source)
        at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
        at java.io.ObjectInputStream.readObject0(Unknown Source)
        at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
        at java.io.ObjectInputStream.readSerialData(Unknown Source)
        at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
        at java.io.ObjectInputStream.readObject0(Unknown Source)
        at java.io.ObjectInputStream.readObject(Unknown Source)
        at hudson.remoting.UserRequest.deserialize(UserRequest.java:182)
        at hudson.remoting.UserRequest.perform(UserRequest.java:98)
        at hudson.remoting.UserRequest.perform(UserRequest.java:48)
        at hudson.remoting.Request$2.run(Request.java:326)
        at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at hudson.remoting.Engine$1$1.run(Engine.java:63)
        at java.lang.Thread.run(Unknown Source)
4

1 に答える 1

1

まったく同じ問題がありました-スレーブは接続しますが、すぐに失敗します。サーバーログのエラーは同じでした。スレーブはファイアウォールの背後にあったため、手動でスレーブを起動していましたが、ssh または jnlp を使用して Jenkins マスター プロセスと同じマシンでスレーブを起動すると、同じエラーが発生しました。

サーバーで Jenkins プロセスを再起動すると、問題は解消されました。

于 2014-06-12T16:06:35.280 に答える