使用RESTful API修改作业的Jenkins构建信息失败并出现INTERNAL错误500

时间:2015-10-26 06:01:41

标签: json rest curl jenkins

我试图通过curl使用jenkins的其余api的JSON风格来修改作业构建的<keepLog>信息。 这是我在终端中执行的命令:

curl -i -X POST http://userName:passWord@jenkinsServerName/job/jobName/jobNumber/configSubmit -H "Content-Type: application/json" -d '{"keepLog":true}'

在尝试命令时,我得到以下异常:

HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Expires: 0
Cache-Control: no-cache,must-revalidate
X-Hudson-Theme: default
X-Frame-Options: sameorigin
Set-Cookie: JSESSIONID=E03E57536C73B539AE980D2E2E23E21B; Path=/; HttpOnly
X-Hudson: 1.395
X-Jenkins: 1.532.2
X-Jenkins-Session: 52147858
X-Hudson-CLI-Port: 58895
X-Jenkins-CLI-Port: 58895
X-Jenkins-CLI2-Port: 58895
X-Instance-Identity:    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk3DSI2DZjwNW5axYcX2GZFGF6k6GjMdrHxJBNdK3jcpMP6B9Va+cj6iEVK8wdrKgr1tr3IbAdmzn0jusEh/CKC1IADwka3FCixrZghZ8kUKVZ82r7LCH34WP8csOEJXgTs13iKgLTEmkmmyQNEYGbfhzDAaFJlWpRuBiReZ0AjcnNnCOJsxqyDjeQMCNkqyTzIIYRSKj+oSseZyhfpUylMVv9ydPm1IuNTwCWZoMYR9Qfs4ggWPmA6T7G8FvQYTLylVbn+D2S44dGFgnvAL0/Sk1kq4hw0OSYyRlnO5PjuLTW3S02p0fjuwCTrgWI5T84pCtBVR3keR9xsgNvsmVoQIDAQAB
X-SSH-Endpoint: idc-ws-arbs-dev.mchp-main.com:58894
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 26 Oct 2015 05:54:40 GMT
Connection: close
  

org.apache.commons.jelly.JellyTagException:jar:file:/ C:/apache-tomcat-7.0.64/webapps/ROOT/WEB-INF/lib/jenkins-core-1.53​​2.2.jar!/ hudson / security / SecurityRealm / loginLink.jelly:28:78:&lt; j:invokeStatic&gt;无法加载类:java.net.URLEncoder。原因:java.lang.NoSuchMethodException:java.net.URLEncoder.encode(java.lang.Object,java.lang.String)           在org.apache.commons.jelly.tags.core.InvokeStaticTag.createLoadClassFailedException(InvokeStaticTag.java:177)           在org.apache.commons.jelly.tags.core.InvokeStaticTag.doTag(InvokeStaticTag.java:139)           在org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.apache.commons.jelly.tags.core.CoreTagLibrary $ 2.run(CoreTagLibrary.java:105)           在org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)           在org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)           在org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.apache.commons.jelly.tags.core.CoreTagLibrary $ 2.run(CoreTagLibrary.java:105)           在org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)           在org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)           在org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)           在org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)           在org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(otherwiseTag.java:41)           在org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)           在org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)           在org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.apache.commons.jelly.tags.core.CoreTagLibrary $ 1.run(CoreTagLibrary.java:98)           在org.kohsuke.stapler.jelly.ReallyStaticTagLibrary $ 1.run(ReallyStaticTagLibrary.java:99)           在org.kohsuke.stapler.jelly.ReallyStaticTagLibrary $ 1.run(ReallyStaticTagLibrary.java:99)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.kohsuke.stapler.jelly.ReallyStaticTagLibrary $ 1.run(ReallyStaticTagLibrary.java:99)           在org.kohsuke.stapler.jelly.ReallyStaticTagLibrary $ 1.run(ReallyStaticTagLibrary.java:99)           在org.kohsuke.stapler.jelly.ReallyStaticTagLibrary $ 1.run(ReallyStaticTagLibrary.java:99)           在org.kohsuke.stapler.jelly.ReallyStaticTagLibrary $ 1.run(ReallyStaticTagLibrary.java:99)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.kohsuke.stapler.jelly.ReallyStaticTagLibrary $ 1.run(ReallyStaticTagLibrary.java:99)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.kohsuke.stapler.jelly.ReallyStaticTagLibrary $ 1.run(ReallyStaticTagLibrary.java:99)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.kohsuke.stapler.jelly.ReallyStaticTagLibrary $ 1.run(ReallyStaticTagLibrary.java:99)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.apache.commons.jelly.tags.core.CoreTagLibrary $ 2.run(CoreTagLibrary.java:105)           在org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)           在org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)           在org.apache.commons.jelly.tags.core.CoreTagLibrary $ 2.run(CoreTagLibrary.java:105)           在org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)           在org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)           在org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)           在org.kohsuke.stapler.jelly.JellyFacet $ 1.dispatch(JellyFacet.java:95)           在org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)           在org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)           在org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)           at hudson.init.impl.InstallUncaughtExceptionHandler $ 1.reportException(InstallUncaughtExceptionHandler.java:25)           在org.kohsuke.stapler.compression.CompressionFilter.reportException(CompressionFilter.java:63)           在org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:52)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)           在hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)           在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)           在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)           在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)           在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)           在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)           在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)           在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)           在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)           在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)           在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)           在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)           at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:625)           在org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.doRun(AprEndpoint.java:2522)           在org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.run(AprEndpoint.java:2511)           at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)           at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)           at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)           在java.lang.Thread.run(未知来源)   引起:java.lang.NoSuchMethodException:java.net.URLEncoder.encode(java.lang.Object,java.lang.String)           在java.lang.Class.getMethod(未知来源)           在org.apache.commons.jelly.tags.core.InvokeStaticTag.doTag(InvokeStaticTag.java:124)           ... 69更多

2 个答案:

答案 0 :(得分:0)

如果您使用的是Windows,可能是引号有问题:

你可以尝试:

curl -i -X POST http://userName:passWord@jenkinsServerName/job/jobName/jobNumber/configSubmit -H "Content-Type: application/json" -d '{\"keepLog\":true}'

相关的SO问题:How to send double quote in -d parameter for curl.exe?

答案 1 :(得分:0)

这是詹金斯的一个错误。请参阅:https://issues.jenkins-ci.org/browse/JENKINS-31618