当我使用 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() 已被调用”的主要内容,如果未能解决你的问题,请参考以下文章

调用共享 WebMethod 时出现未知 Web 方法异常

从 Windows 服务调用时出现 WCF 安全异常

尝试使用 npm start 命令启动服务器时出现异常

com.netflix.zuul.exception.ZuulException:当我调用 POST 方法调用时出现转发错误

从 Ajax 调用 Spring Boot Rest API 时出现 CORS 错误

Android - 调用自定义 View 方法时出现空指针异常