【问题标题】:"Could not find a transformer" Mule Anypoint Studio error when using a custom built Connector使用定制连接器时出现“找不到变压器”Mule Anypoint Studio 错误
【发布时间】:2015-06-28 23:51:02
【问题描述】:

我正在使用 DevKit 创建 Mule Anypoint 连接器以连接到内部开发的 API。使用 @RestCall 注释,我能够在 Mule 流中成功使用我的连接器,连接器返回以下 JSON 的字符串:

{
    "name": "Bryan",
    "email": "bryan@myservice.com",
    "uid": "b6fr89dbf6d9156cace5f3c78dc9851d957381ef",
    "email_verified": true
}

我知道我可以在 Mule 流程中实现“JSON 到对象”转换器,但我希望连接器返回一个 POJO。话虽如此,我修改了 @RestCall 注释的抽象方法以返回一个 Account 对象:

@Processor
@RestCall(
        uri="https://api.myservice.com/v2/account", 
        method=HttpMethod.GET, 
        contentType = "application/json")
public abstract Account getUserInformation() throws IOException;  

仅供参考,以下是我定义帐户的方式:

package org.mule.modules.myservice.model;

import java.io.Serializable;

public class Account implements Serializable {
    private static final long serialVersionUID = -1L;

    private String name;
    private String email;
    private String uid;
    private boolean emailVerified;

    /**
     * removed getters and setters for brevity
     */
}

但是,现在我尝试返回 Account 对象,我收到以下错误:

org.mule.api.transformer.TransformerException:找不到将“SimpleDataType{type=java.lang.String, mimeType='/'}”转换为“SimpleDataType{type”的转换器=org.mule.modules.myservice.model.Account, mimeType='/'}"。

我看到有一个 @Transformer 注释,但缺少关于如何在 Mule 连接器中使用 JSON 和/或在 @RestCall 上下文中工作的文档。

谁能提供关于如何将 JSON 字符串转换为连接器内的 Account 对象的建议?

【问题讨论】:

    标签: mule mule-studio


    【解决方案1】:

    在某些时候(不是您指向的地方),您尝试将字符串传递给需要帐户的操作。为此注册一个转换器或在操作前手动转换。

    【讨论】:

      【解决方案2】:

      我在另一个论坛收到了以下回复,想转发一下:

      为了在 pojos 中使用 DevKit @RestCall,您需要定义从 String 到 POJO 的转换器。

      检查这个例子:https://github.com/pablocabrera85/json-place-holder-connector

      对于我的具体问题,这是我正在寻找并且确实有效的示例类型。

      【讨论】:

        猜你喜欢
        • 2015-08-29
        • 2014-12-23
        • 2020-06-28
        • 1970-01-01
        • 1970-01-01
        • 2013-08-22
        • 1970-01-01
        • 2015-03-22
        • 1970-01-01
        相关资源
        最近更新 更多