"Could not find a transformer" 使用自定义连接器时出现 Mule Anypoint Studio 错误
"Could not find a transformer" Mule Anypoint Studio error when using a custom built Connector
我正在使用 DevKit 创建一个 Mule Anypoint 连接器以连接到内部开发的 API。使用 @RestCall
注释,我能够在 Mule 流中成功使用我的连接器,连接器 returning 字符串如下 JSON:
{
"name": "Bryan",
"email": "bryan@myservice.com",
"uid": "b6fr89dbf6d9156cace5f3c78dc9851d957381ef",
"email_verified": true
}
我知道我可以在 Mule 流中实现一个 "JSON to Object" 转换器,但我希望连接器改为 return 一个 POJO。也就是说,我将 @RestCall
注释的抽象方法修改为 return 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
*/
}
但是,现在我正在尝试 return 帐户对象,我收到以下错误:
org.mule.api.transformer.TransformerException: Could not find a transformer to transform "SimpleDataType{type=java.lang.String, mimeType='/'}" to "SimpleDataType{type=org.mule.modules.myservice.model.Account, mimeType='/'}".
我看到有一个 @Transformer
注释,但是缺少有关如何在 JSON and/or 的上下文中使用 and/or 来实现它的文档14=] 在 Mule 连接器中。
任何人都可以就如何将 JSON 的字符串转换为连接器中的帐户对象提供建议吗?
在某些时候(不是您指向的地方)您正试图将字符串传递给需要帐户的操作。为此注册一个转换器或在操作前手动转换。
我在另一个论坛收到了以下回复,想转告一下:
In order to use DevKit @RestCall with pojos, you need to define the transformers from String to your POJO.
Check this example: https://github.com/pablocabrera85/json-place-holder-connector
对于我的具体问题,这是我一直在寻找并且确实有效的示例类型。
我正在使用 DevKit 创建一个 Mule Anypoint 连接器以连接到内部开发的 API。使用 @RestCall
注释,我能够在 Mule 流中成功使用我的连接器,连接器 returning 字符串如下 JSON:
{
"name": "Bryan",
"email": "bryan@myservice.com",
"uid": "b6fr89dbf6d9156cace5f3c78dc9851d957381ef",
"email_verified": true
}
我知道我可以在 Mule 流中实现一个 "JSON to Object" 转换器,但我希望连接器改为 return 一个 POJO。也就是说,我将 @RestCall
注释的抽象方法修改为 return 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
*/
}
但是,现在我正在尝试 return 帐户对象,我收到以下错误:
org.mule.api.transformer.TransformerException: Could not find a transformer to transform "SimpleDataType{type=java.lang.String, mimeType='/'}" to "SimpleDataType{type=org.mule.modules.myservice.model.Account, mimeType='/'}".
我看到有一个 @Transformer
注释,但是缺少有关如何在 JSON and/or 的上下文中使用 and/or 来实现它的文档14=] 在 Mule 连接器中。
任何人都可以就如何将 JSON 的字符串转换为连接器中的帐户对象提供建议吗?
在某些时候(不是您指向的地方)您正试图将字符串传递给需要帐户的操作。为此注册一个转换器或在操作前手动转换。
我在另一个论坛收到了以下回复,想转告一下:
In order to use DevKit @RestCall with pojos, you need to define the transformers from String to your POJO.
Check this example: https://github.com/pablocabrera85/json-place-holder-connector
对于我的具体问题,这是我一直在寻找并且确实有效的示例类型。