当我使用 curl 命令调用服务时出现异常“UT000004:getResponseChannel() 已被调用”
Posted
技术标签:
【中文标题】当我使用 curl 命令调用服务时出现异常“UT000004:getResponseChannel() 已被调用”【英文标题】:Exception " UT000004: getResponseChannel() has already been called" when i invoked the service using curl command 【发布时间】:2014-12-11 20:43:37 【问题描述】:当我尝试调用部署在 jboss wildfly 中的其余服务(Spring)时,出现以下异常
18:33:00,767 错误 [io.undertow.request](默认任务 9)阻止请求失败 HttpServerExchange POST /webResults/tx/jurisdiction/SridharJurisdiction/election/election/processFile:java.lang.IllegalStateException: UT000004:getResponseChannel() 已被调用 在 io.undertow.server.protocol.http.HttpContinue.createResponseSender(HttpContinue.java:78) 在 io.undertow.server.handlers.HttpContinueReadHandler$ContinueConduit.read(HttpContinueReadHandler.java:104) 在 org.xnio.conduits.ConduitStreamSourceChannel.read(ConduitStreamSourceChannel.java:127) [xnio-api-3.2.2.Final.jar:3.2.2.Final] 在 io.undertow.channels.DetachableStreamSourceChannel.read(DetachableStreamSourceChannel.java:181) 在 io.undertow.server.HttpServerExchange$ReadDispatchChannel.read(HttpServerExchange.java:1952) 在 org.xnio.channels.Channels.readBlocking(Channels.java:294) [xnio-api-3.2.2.Final.jar:3.2.2.Final] 在 io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:146) 在 io.undertow.servlet.spec.ServletInputStreamImpl.close(ServletInputStreamImpl.java:218) 在 io.undertow.servlet.spec.HttpServletRequestImpl.closeAndDrainRequest(HttpServletRequestImpl.java:588) 在 io.undertow.servlet.core.ServletBlockingHttpExchange.close(ServletBlockingHttpExchange.java:69) 在 io.undertow.server.HttpServerExchange.endExchange(HttpServerExchange.java:1404) 在 io.undertow.server.Connectors.executeRootHandler(Connectors.java:193) 在 io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_21] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_21] 在 java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_21]
请告诉我你的想法
提前致谢
【问题讨论】:
【参考方案1】:这是与 WildFly 8 和 9 相关的问题,并且仍然存在。
但找到了一个解决方法,将有关 Expect:100-continue 的标头定义删除到发件人中......
希望对您有所帮助。
当我使用 Postman 插件测试我的 restful 服务时,我没有问题.. 我认为邮递员不会发送“Expection: 100-continue”和“keep-alive”..
我以这种方式使用 cURL 解决了我的问题:
curl -v -X POST -H "Expect:" -F facebookId=12313123123 http://localhost:8080/desafio-webapp/person/
跟踪问题链接:
track 1
track 2
【讨论】:
以上是关于当我使用 curl 命令调用服务时出现异常“UT000004:getResponseChannel() 已被调用”的主要内容,如果未能解决你的问题,请参考以下文章
com.netflix.zuul.exception.ZuulException:当我调用 POST 方法调用时出现转发错误