簡體   English   中英

如何從Mule Studio中的連接器發送和獲取對象?

[英]How can I send and acquire an object from a connector in Mule Studio?

我需要向期望的自定義​​連接器發送和獲取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在常規的Mule流中發送FakeData對象和接收另一個對象。

有人可以幫我嗎?

-------更新--------

我正在使用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

在您的流程中,您可以執行以下操作:

<set-payload value="#[new org.mule.example.FakeData()]" />

編輯:您已經修改了問題,並添加了HTTP入站終結點。 您收到的錯誤可能是因為入站HTTP端點是request-response並且您沒有將org.mule.example.FakeData轉換為某種東西,而不是通過HTTP進行流傳輸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM