我需要将Java对象发送并获取到期望的自定义连接器:
// inside MyConnector.java
@Processor
public Object doSomething(@Default(#[payload]) final Object data) {...}
我正在尝试向它发送一个FakeData类的实例。当我使用Mule的FunctionalTestCase类发送对象时,我可以验证这是否有效:
<!-- inside mule-config.xml -->
<flow name="Do_Something">
<myconnector:do-Something document-ref="#[payload]"/>
</flow>
public class FlowBuilder extends FunctionalTestCase {
public void run() {
Object payload = new FakeData();
Flow flow = lookupFlowConstruct("Do_Something");
MuleEvent event = FunctionalTestCase.getTestEvent(payload);
MuleEvent responseEvent= flow.process(event);
}
}
我无法弄清楚如何使用Mule Studio发送FakeData对象并在常规Mule流中接收另一个对象。
有人能帮助我吗?
-------更新--------
我正在使用HTTP前端调用流程。流程如下:
[HTTP] -> [Java "My Transformer"] -> [Custom Connector]
我尝试在连接器前面添加一个变压器:
public class MyTransformer extends AbstractMessageTransformer {
@Override
public Object transformMessage(MuleMessage message, String outputEncoding)
throws TransformerException {
return new fakeData();
}
}
现在我收到了这个回复:
Could not find a transformer to transform
"SimpleDataType{type=org.mule.example.FakeData, mimeType='*/*'}" to
"SimpleDataType{type=org.mule.api.transport.OutputHandler, mimeType='*/*'}".
(org.mule.api.transformer.TransformerException) (org.mule.api.transformer.TransformerException). Message payload is of type: FakeData
答案 0 :(得分:1)
在您的流程中,您可以执行以下操作:
<set-payload value="#[new org.mule.example.FakeData()]" />
编辑:您已修改了问题并添加了HTTP入站端点。您获得的错误可能是因为您的入站HTTP端点为request-response
,并且您尚未将org.mule.example.FakeData
转换为通过HTTP流式传输的内容。