当前位置: 首页 > 知识库问答 >
问题:

使用自定义连接器时出现“找不到转换器”Mule Anypoint Studio错误

伊铭
2023-03-14

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

但是,现在我试图返回帐户对象,我收到以下错误:

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

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

有人能就如何在连接器中将JSON字符串转换成Account对象提供建议吗?

共有2个答案

红朝
2023-03-14

我在另一个论坛上收到了以下回应,并希望将其传递出去:

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

查看这个例子:https://github . com/pablocabrera 85/JSON-place-holder-connector

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

蓝昊然
2023-03-14

在某个时候(不是你所指的地方),你试图将一个字符串传递给一个需要Account的操作。为此注册一个转换器,或者在操作之前手动转换。

 类似资料:
  • 问题内容: 我正在使用JSF设置表单(这是我的新手),并且在其中一个字段上收到消息。该字段实际上是一个具有自定义转换器的单独对象(如下文所示)。 这是我所拥有的(删除了不相关的代码): 我有一堂课: 我也有一个您在该类中引用的类: 那么对于我的表格,我有: 最后,对于我的转换器,我有: 现在,当我进入表单并提交时,我将获得状态旁边的内容。我在这方面还很新,感谢@BalusC,我一直很远。 任何帮助

  • 主要内容:JSF自定义转换器实例我们可以在JSF中创建自己的自定义转换器。 以下列表是我们可以在JSF中创建自定义转换器的步骤。 通过实现接口创建一个转换器类。 实现上述接口的和方法。 使用注解为自定义转换器分配唯一的ID。 JSF自定义转换器实例 打开 NetBeans IDE 创建一个Web工程:CustomConverter,其目录结构如下所示 - 创建以下文件代码,文件:index.xhtml 的代码内容如下所示 - 文

  • I'v开始寻找很好的解决方案,如何使用Spring CassandraOperations很好地持久化实体。问题的出现是因为我的实体中的某些字段不支持cassandra,例如joda DateTime。 解决方法是在java类型的同一实体中有其他字段。util。Date而不是joda DateTime,用@Transient标记未要求的字段。但这并不干净,所以我开始寻找自动自定义转换。 目前,sp

  • 我正在尝试使用docker容器中的kafka connect和一个自定义连接器(PROGRESS _ DATADIRECT _ JDBC _ OE _ all . jar)来连接openedge数据库。 我将JAR文件放在插件路径(usr/share/java)中,但它不会作为连接器加载。 我可以通过将另一个(标准)连接器放在插件路径中来加载它。这行得通 有点不知道如何前进,我对Kafka很陌生。

  • 我使用Docker在远程Linux计算机上安装了一个服务。我使用了以下命令 docker运行-p 4443:4443--rm-e openvidu.secret=my_secret-e openvidu.publicurl=https://187.84.228.66:4443 openvidu/openvidu-server-kms 但当我第一次尝试do connect时,我收到了以下错误消息:

  • 下面是/etc/kafka/connect-MongoDB-source.properties中的MongoDB配置 但是低于误差 以独立模式运行连接器。 我在debezium-debezium-连接器-mongob-1.0.0/debezium-connector-mongodb-1.0.0.Final.jar 类路径的设置如下 使用插件路径,我看到它能够注册和加载所有必需的插件。 但最后还是同