2015-03-03 96 views
0

我做一个样本书店。当用户预订订单时,系统会发送一封包含订单日期的电子邮件。该系统发送电子邮件,但它显示了一个错误:转换Http响应对象骡esb

Root Exception stack trace: 
java.lang.IllegalArgumentException: Cannot apply transformer HttpClientMethodResponseToObject{this=6911a11b, name='HttpClientMethodResponseToPedido', ignoreBadInput=false, returnClass=SimpleDataType{type=org.mule.entities.Pedido, mimeType='text/html'}, sourceTypes=[SimpleDataType{type=org.apache.commons.httpclient.HttpMethod, mimeType='*/*'}]} on source payload: class org.mule.transport.http.HttpResponse 
at org.mule.DefaultMuleMessage.applyAllTransformers(DefaultMuleMessage.java:1427) 
at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1379) 
at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1371) 
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything) 

我的XML是下一个:

<smtp:gmail-connector name="Gmail" validateConnections="true" doc:name="Gmail" contentType="text/html" /> 
<flow name="Email" doc:name="Email"> 
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8088" doc:name="HTTP" path="Email"/> 
    <http:static-resource-handler resourceBase="docroot" defaultFile="index.html" doc:name="HTTP Static Resource Handler"/> 
</flow> 
<flow name="Correo" doc:name="Correo"> 
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8088" path="Facturacion" doc:name="HTTP" transformer-refs="Java"/> 
    <component doc:name="Generar Pedido" class="org.mule.components.GenerarPedido"/> 
    <smtp:outbound-endpoint host="smtp.gmail.com" port="587" user="email%40gmail.com" password="pass" connector-ref="Gmail" to="#[payload.email]" from="BookStore S.A." responseTimeout="10000" doc:name="SMTP" transformer-refs="Java1" mimeType="text/html"/> 
    <http:response-builder status="200" contentType="text/html" doc:name="HTTP Response Builder"/> 
    <http:http-response-to-object-transformer returnClass="org.mule.entities.Pedido" encoding="UTF-8" mimeType="text/html" doc:name="HTTP Response to Object"/> 
</flow> 

任何人都可以帮我吗?

回答

1

您的有效负载不是HTTP响应,因此您不能使用http-response-to-object-transformer。在调用一个返回'HTTP响应'的http:outbound-endpoint后使用它。

+0

这是正确的,我认为OP想要使用'set-payload'来设置HTTP响应的主体。 – 2015-03-03 21:36:16

+0

我正在做你说什么,但我没有预期的结果。有没有关于这个的任何教程或链接? – 2015-03-05 17:49:13