我已经转换为字节数组但我不断收到此错误:
ERROR 2015-02-25 11:12:30,517 [[ESR].HTTP_Request_Listener.worker.01] org.mule.exception.DefaultMessagingExceptionStrategy: ******************************************************************************** Message : Response code 400 mapped as failure. Message payload is of type: BufferInputStream Code : MULE_ERROR--2 -------------------------------------------------------------------------------- Exception stack is: 1. Response code 400 mapped as failure. Message payload is of type: BufferInputStream (org.mule.module.http.internal.request.ResponseValidatorException) org.mule.module.http.internal.request.SuccessStatusCodeValidator:37 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/module/http/internal/request/ResponseValidatorException.html) -------------------------------------------------------------------------------- Root Exception stack trace: org.mule.module.http.internal.request.ResponseValidatorException: Response code 400 mapped as failure. Message payload is of type: BufferInputStream at org.mule.module.http.internal.request.SuccessStatusCodeValidator.validate(SuccessStatusCodeValidator.java:37) at org.mule.module.http.internal.request.DefaultHttpRequester.innerProcess(DefaultHttpRequester.java:202) at org.mule.module.http.internal.request.DefaultHttpRequester.process(DefaultHttpRequester.java:166) + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) ********************************************************************************
这是我的流程:
<sub-flow name="requestBeanCreate"> <object-to-byte-array-transformer /> <set-payload value="#[app.registry.messageBean.createServiceRequest(message.inboundProperties['http.uri.params']['name'],payload)]"/> </sub-flow> <flow name = "RequestsEntryFlow" > <http:listener allowedMethods="POST" parseRequest="false" config-ref="HTTP_Request_Listener" path="/{name}" doc:name="HTTP Entry Flow" /> <flow-ref name="requestBeanCreate" /> <choice doc:name="Choice"> <when expression="#[app.registry.messageBean.isEMCRequired(payload)]"> <jms:outbound-endpoint connector-ref="jms-connector" ref="EMCRequiredRequestsQueue" /> </when> <otherwise> <flow-ref name="req" /> </otherwise> </choice> </flow> <http:request-config parseResponse="false" name="HTTP_Request_Configuration" /> <sub-flow name = "req"> <set-variable variableName="id" value="#[payload]" doc:name="Variable" /> <set-variable variableName="destination" value="#[app.registry.routerBean.getDestination(app.registry.messageBean.getReceiverID(payload))]" doc:name="Variable" /> <set-payload value="#[app.registry.messageBean.sendRequestToDestination(payload)]" /> <processor-chain> <http:request parseResponse="false" config-ref="HTTP_Request_Configuration" host="#[flowVars.destination]" port="80" path="/" method="POST" /> <object-to-byte-array-transformer /> <expression-component> app.registry.messageBean.sendResponseToSender(flowVars.id); app.registry.messageBean.messageProcessedSuccessfully(flowVars.id); </expression-component> </processor-chain> </sub-flow>
解决方法
您似乎从HTTP请求中获取了400状态代码,这会在到达变换器之前导致异常.尝试添加覆盖所有案例的成功状态代码验证器(您可以选择稍后考虑哪些案例):
<http:request parseResponse="false" config-ref="HTTP_Request_Configuration" host="#[flowVars.destination]" port="80" path="/" method="POST"> <http:success-status-code-validator values="0..599"/> </http:request>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。