Jenkins的奴隶特工在哪里jnlp的UTF-8错误,所以我可以修复它

n8ghc7c1  于 2023-04-29  发布在  Jenkins
关注(0)|答案(1)|浏览(130)

在Windows 10系统上,我可以通过命令行连接Jenkins从站,但不能通过服务。
jenkins奴隶。err.log显示MalformedByteSequence: invalid byte 2 of 2-byte UTF-8 sequence
MalformedByteSequenceException解释了为什么会发生这种情况(也省了我转录回溯堆栈的头痛!),但不是如何找到问题在哪里,以便我可以修复它。
在浏览器中,我输入http://my-jenkins-master:8080/computer/my_agent/slave-agent.jnlp
得到大小为377字节的对话框窗口You have chose to open slave-agent.jnlp
但是当我选择“保存文件”时--什么也没发生,然后jenkins-slave。err.log显示Content is not allowed in prolog
其他代理可以下载其从属代理。jnlp好的,所以我不知道问题出在哪里,这样我就可以修复它。
我们很乐意提供您所需要的任何其他信息。

nukf8bse

nukf8bse1#

TL;DR

错误消息来自jnlpUrlsecret参数的错误组合。例如,jnlpUrl来自build-node-01,secret来自其他build-node。
检查你的脚本,在那里你连接代理(build-node)到你的jenkins。

java -jar agent.jar -jnlpUrl http://your-jenkins.com/computer/your-build-node-ABC/jenkins-agent.jnlp -secret <secret for your build node DEF>

确保jnlpUrlsecret用于同一个座席。

详情

我今天遇到了同样的问题,在我的情况下,它原来是一个复制和粘贴错误!在我们所有的构建节点上,我们都有这样一行启动脚本

java -jar agent.jar -jnlpUrl http://my-jenkins.com/computer/my-build-node-01/jenkins-agent.jnlp -secret <secret for my-build-node-01>

我把这个启动脚本复制到新的build-node上,只替换了 secret

java -jar agent.jar -jnlpUrl http://my-jenkins.com/computer/my-build-node-01/jenkins-agent.jnlp -secret <secret for my-build-node-02>

URL来自build-node-01,秘密来自build-node-02!

WRONG    java -jar agent.jar -jnlpUrl http://my-jenkins.com/computer/my-build-node-01/jenkins-agent.jnlp -secret <secret for my-build-node-02>
CORRECT  java -jar agent.jar -jnlpUrl http://my-jenkins.com/computer/my-build-node-02/jenkins-agent.jnlp -secret <secret for my-build-node-02>

错误信息

如果你搞砸了jnlpUrlsecret,这就是整个错误消息

[Fatal Error] :1:1: Invalid byte 2 of 2-byte UTF-8 sequence.
Exception in thread "main" org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Invalid byte 2 of 2-byte UTF-8 sequence.
        at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:263)
        at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
        at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
        at hudson.remoting.Launcher.loadDom(Launcher.java:604)
        at hudson.remoting.Launcher.parseJnlpArguments(Launcher.java:546)
        at hudson.remoting.Launcher.run(Launcher.java:346)
        at hudson.remoting.Launcher.main(Launcher.java:297)
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.
        at java.xml/com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:702)
        at java.xml/com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:373)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1913)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.arrangeCapacity(XMLEntityScanner.java:1779)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipString(XMLEntityScanner.java:1817)
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:158)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:861)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
        ... 6 more

相关问题