我有2个Windows服务器(主服务器和从属服务器)的小型Jenkins环境。 我想将Slave配置为Windows服务。
"java -jar agent.jar -workDir "C:\JENKINS""
命令运行并运行从属设备时。来自浏览器的启动代理开始启动,并一遍又一遍地从连接循环到终止。
在詹金斯上,我看到了错误:
Ping响应时间太长或超时。
连接断开
和:
java.nio.channels.ClosedChannelException在 org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer.onReadClosed(ChannelApplicationLayer.java:209) 在 org.jenkinsci.remoting.protocol.ApplicationLayer.onRecvClosed(ApplicationLayer.java:222) 在 org.jenkinsci.remoting.protocol.ProtocolStack $ Ptr.onRecvClosed(ProtocolStack.java:832) 在 org.jenkinsci.remoting.protocol.FilterLayer.onRecvClosed(FilterLayer.java:287) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.onRecvClosed(SSLEngineFilterLayer.java:181) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.switchToNoSecure(SSLEngineFilterLayer.java:283) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processWrite(SSLEngineFilterLayer.java:503) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processQueuedWrites(SSLEngineFilterLayer.java:248) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doSend(SSLEngineFilterLayer.java:200) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doCloseSend(SSLEngineFilterLayer.java:213) 在 org.jenkinsci.remoting.protocol.ProtocolStack $ Ptr.doCloseSend(ProtocolStack.java:800) 在 org.jenkinsci.remoting.protocol.ApplicationLayer.doCloseWrite(ApplicationLayer.java:173) 在 org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer $ ByteBufferCommandTransport.closeWrite(ChannelApplicationLayer.java:314) 在hudson.remoting.Channel.close(Channel.java:1450)在 hudson.remoting.Channel.close(Channel.java:1403)在 jenkins.slaves.DefaultJnlpSlaveReceiver.afterChannel(DefaultJnlpSlaveReceiver.java:173) 在 org.jenkinsci.remoting.engine.JnlpConnectionState $ 4.invoke(JnlpConnectionState.java:421) 在 org.jenkinsci.remoting.engine.JnlpConnectionState.fire(JnlpConnectionState.java:312) 在 org.jenkinsci.remoting.engine.JnlpConnectionState.fireAfterChannel(JnlpConnectionState.java:418) 在 org.jenkinsci.remoting.engine.JnlpProtocol4Handler $ Handler $ 1.run(JnlpProtocol4Handler.java:334) 在 jenkins.util.ContextResettingExecutorService $ 1.run(ContextResettingExecutorService.java:28) 在 jenkins.security.ImpersonatingExecutorService $ 1.run(ImpersonatingExecutorService.java:59) 在java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源) at java.lang.Thread.run(Unknown Source)将代理连接到Jenkins 这些方式中:
在日志文件中,我看到了:
从SERVERMACH / 10.10.8.6连接的JNLP代理远程版本:3.20 这是Windows代理另外:
hudson.remoting.Channel $ CallSiteStackTrace:远程调用 来自SERVERMACH / 10.10.8.6:63232的JNLP4-connect连接 hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741) 在 hudson.remoting.UserRequest $ ExceptionResponse.retrieve(UserRequest.java:357) 在hudson.remoting.Channel.call(Channel.java:955)处 hudson.FilePath.act(FilePath.java:1131)位于 org.jenkinsci.plugins.envinject.EnvInjectComputerListener.onOnline(EnvInjectComputerListener.java:158) 在hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:620) 在 jenkins.slaves.DefaultJnlpSlaveReceiver.afterChannel(DefaultJnlpSlaveReceiver.java:168) 在 org.jenkinsci.remoting.engine.JnlpConnectionState $ 4.invoke(JnlpConnectionState.java:421) 在 org.jenkinsci.remoting.engine.JnlpConnectionState.fire(JnlpConnectionState.java:312) 在 org.jenkinsci.remoting.engine.JnlpConnectionState.fireAfterChannel(JnlpConnectionState.java:418) 在 org.jenkinsci.remoting.engine.JnlpProtocol4Handler $ Handler $ 1.run(JnlpProtocol4Handler.java:334) 在 jenkins.util.ContextResettingExecutorService $ 1.run(ContextResettingExecutorService.java:28) 在 jenkins.security.ImpersonatingExecutorService $ 1.run(ImpersonatingExecutorService.java:59) 在java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知 来源)hudson.remoting.ProxyException: java.lang.reflect.InaccessibleObjectException:无法创建字段 私有int java.lang.reflect.Field.modifiers可访问:模块 java.base不会“打开java.lang.reflect”到未命名的模块 @ 7d9a7b14位于 java.lang.reflect.AccessibleObject.checkCanSetAccessible(未知 来源) java.lang.reflect.AccessibleObject.checkCanSetAccessible(未知 源),位于java.lang.reflect.Field.checkCanSetAccessible(未知 源)位于java.lang.reflect.Field.setAccessible(未知源)位于 org.jenkinsci.plugins.envinject.service.EnvInjectMasterEnvVarsSetter.call(EnvInjectMasterEnvVarsSetter.java:36) 在 org.jenkinsci.plugins.envinject.service.EnvInjectMasterEnvVarsSetter.call(EnvInjectMasterEnvVarsSetter.java:16) 在hudson.remoting.UserRequest.perform(UserRequest.java:212)处 hudson.remoting.UserRequest.perform(UserRequest.java:54)在 hudson.remoting.Request $ 2.run(Request.java:369)在 hudson.remoting.InterceptingExecutorService $ 1.call(InterceptingExecutorService.java:72) 在java.util.concurrent.FutureTask.run(未知来源) java.util.concurrent.ThreadPoolExecutor.runWorker(未知源),位于 java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知源) hudson.remoting.Engine $ 1.lambda $ newThread $ 0(Engine.java:93)在 java.lang.Thread.run(未知源)错误:连接终止 java.nio.channels.ClosedChannelException在 org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer.onReadClosed(ChannelApplicationLayer.java:209) 在 org.jenkinsci.remoting.protocol.ApplicationLayer.onRecvClosed(ApplicationLayer.java:222) 在 org.jenkinsci.remoting.protocol.ProtocolStack $ Ptr.onRecvClosed(ProtocolStack.java:832) 在 org.jenkinsci.remoting.protocol.FilterLayer.onRecvClosed(FilterLayer.java:287) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.onRecvClosed(SSLEngineFilterLayer.java:181) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.switchToNoSecure(SSLEngineFilterLayer.java:283) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processWrite(SSLEngineFilterLayer.java:503) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processQueuedWrites(SSLEngineFilterLayer.java:248) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doSend(SSLEngineFilterLayer.java:200) 在 org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doCloseSend(SSLEngineFilterLayer.java:213) 在 org.jenkinsci.remoting.protocol.ProtocolStack $ Ptr.doCloseSend(ProtocolStack.java:800) 在 org.jenkinsci.remoting.protocol.ApplicationLayer.doCloseWrite(ApplicationLayer.java:173) 在 org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer $ ByteBufferCommandTransport.closeWrite(ChannelApplicationLayer.java:314) 在hudson.remoting.Channel.close(Channel.java:1450)在 hudson.remoting.Channel.close(Channel.java:1403)在 jenkins.slaves.DefaultJnlpSlaveReceiver.afterChannel(DefaultJnlpSlaveReceiver.java:173) 在 org.jenkinsci.remoting.engine.JnlpConnectionState $ 4.invoke(JnlpConnectionState.java:421) 在 org.jenkinsci.remoting.engine.JnlpConnectionState.fire(JnlpConnectionState.java:312) 在 org.jenkinsci.remoting.engine.JnlpConnectionState.fireAfterChannel(JnlpConnectionState.java:418) 在 org.jenkinsci.remoting.engine.JnlpProtocol4Handler $ Handler $ 1.run(JnlpProtocol4Handler.java:334) 在 jenkins.util.ContextResettingExecutorService $ 1.run(ContextResettingExecutorService.java:28) 在 jenkins.security.ImpersonatingExecutorService $ 1.run(ImpersonatingExecutorService.java:59) 在java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源) 在java.lang.Thread.run(未知来源)
经过测试:Java版本,向JVM配置,网络连接和JNLP端口添加了参数。 任何方向都很棒! 谢谢 !