Java Web Start と手動の .zip ディストリビューションを使用して、いくつかの異なる方法で TeamCity ビルド エージェントを自分のマシンにインストールしました。TeamCityサーバーに1、2回接続して適切に登録できたので、どちらも実行可能なインストールになります。ただし、再起動すると ( <install_location>/bin/agent.sh stop
... <install_location>/bin/agent.sh start
) teamcity-agent.log に次のエラーが表示されます (log4j 構成ファイルで追加のデバッグがオンになっています)。
[2013-04-03 09:05:09,870] デバッグ - jetbrains.buildServer.XMLRPC - faultStringjava.lang.RuntimeException: org.jdom.input.JDOMParseException: 28 行目のエラー: XML ドキュメント構造は同じエンティティ内で開始および終了する必要があります.faultCode0 [2013-04-03 09:05:09,878] デバッグ - buildServer.AGENT.registration - jetbrains.buildServer.xmlrpc.RemoteCallException: http://teamcityserver:8080/RPC2 buildServer.registerAgent3 を呼び出します: org.apache.xmlrpc.XmlRpcException: java.lang.RuntimeException: org.jdom.input.JDOMParseException: 28 行目のエラー: XML ドキュメント構造は、同じエンティティ内で開始および終了する必要があります。 jetbrains.buildServer.xmlrpc.RemoteCallException: コール http://teamcityserver:8080/RPC2 buildServer.registerAgent3: org.apache.xmlrpc.XmlRpcException: java.lang.RuntimeException: org.jdom.input.JDOMParseException: 28 行目のエラー: XMLドキュメント構造は、同じエンティティ内で開始および終了する必要があります。 jetbrains.buildServer.xmlrpc.AbstractXmlRpcTarget.call (AbstractXmlRpcTarget.java:94) で jetbrains.buildServer.agent.impl.ServerXmlRpcProxy.registerAgent3 (ServerXmlRpcProxy.java:62) で jetbrains.buildServer.agent.impl.BuildAgentImpl.doRegisterOnBuildServer (BuildAgentImpl.java:776) で jetbrains.buildServer.agent.impl.BuildAgentImpl.registerOnBuildServer (BuildAgentImpl.java:748) で jetbrains.buildServer.agent.impl.ServerMonitor.run (ServerMonitor.java:71) で 原因: org.apache.xmlrpc.XmlRpcException: java.lang.RuntimeException: org.jdom.input.JDOMParseException: 28 行目のエラー: XML ドキュメント構造は同じエンティティ内で開始および終了する必要があります。 org.apache.xmlrpc.XmlRpcClientResponseProcessor.decodeException (XmlRpcClientResponseProcessor.java:104) で org.apache.xmlrpc.XmlRpcClientResponseProcessor.decodeResponse (XmlRpcClientResponseProcessor.java:71) で org.apache.xmlrpc.XmlRpcClientWorker.execute (XmlRpcClientWorker.java:73) で org.apache.xmlrpc.TCXmlRpcClient$1.execute (TCXmlRpcClient.java:89) で org.apache.xmlrpc.XmlRpcClient.execute (XmlRpcClient.java:194) で org.apache.xmlrpc.XmlRpcClient.execute (XmlRpcClient.java:185) で org.apache.xmlrpc.XmlRpcClient.execute (XmlRpcClient.java:178) で jetbrains.buildServer.xmlrpc.impl.CommonsXmlRpcTargetImpl$1.execute (CommonsXmlRpcTargetImpl.java:72) で jetbrains.buildServer.xmlrpc.AbstractXmlRpcTarget.call (AbstractXmlRpcTarget.java:84) で ... 4 つ以上 [2013-04-03 09:05:09,878] 警告 - buildServer.AGENT.registration - http://teamcityserver:8080/RPC2 buildServer.registerAgent3 を呼び出します: org.apache.xmlrpc.XmlRpcException: java.lang.RuntimeException: org. jdom.input.JDOMParseException: 28 行目のエラー: XML ドキュメント構造は、同じエンティティ内で開始および終了する必要があります。 [2013-04-03 09:05:09,878] 警告 - buildServer.AGENT.registration - TeamCity サーバーへの接続が失われた可能性があります。復旧に努めます。詳細については、logs/teamcity-agent.log を参照してください (カスタム ログを使用している場合を除く)。
これは、追加の xmlrpc デバッグを含むログによると、問題の xml です。
<?xml version="1.0"?><methodCall><methodName>buildServer.registerAgent3</methodName><params><param><value><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<agentDetails agentName="aaronhbox_0" agentPort="9090" authToken="" osName="Linux, version 3.5.0-17-generic">
<alternativeAddresses>
<address>10.2.1.232</address>
<address>192.168.225.1</address>
<address>192.168.80.1</address>
</alternativeAddresses>
<availableRunners>
<runner runType="Ant" />
<runner runType="Duplicator" />
<runner runType="gradle-runner" />
<runner runType="Inspection" />
<runner runType="Ipr" />
<runner runType="JPS" />
<runner runType="Maven2" />
<runner runType="rake-runner" />
<runner runType="simpleRunner" />
</availableRunners>
<availableVcs>
<vcs name="perforce" />
<vcs name="mercurial" />
<vcs name="jetbrains.git" />
<vcs name="svn" />
<vcs name="cvs" />
</availableVcs>
<buildParameters>
<param name="env.COLORTERM" value="gnome-terminal" />
<param name="env.COMP_WORDBREAKS"><![CDATA["'><;|]]></value></param></params></methodCall>
エージェントを再起動して、適切に再接続できたのは 1 回だけです。通常、インストールして一度実行し、再起動するとこのエラーが発生します。何か案は?