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 回答