1

我正在使用 Mule SDK 开发自定义连接器。我正在获取必要的元数据。以下是我使用的两个片段: WeatherConnectrOperations.java:

public class WeatherConnectrOperations {

 public void select(@MetadataKeyId(RecordKeysResolver.class) String type) {
 }
}

RecordKeysResolver.java:

public class RecordKeysResolver implements TypeKeysResolver {

 @Override
 public String getCategoryName() {
     return "Records";
 }
 @Override
 public Set<MetadataKey> getKeys(MetadataContext context) throws MetadataResolvingException, ConnectionException {
     System.out.println("Hello");
     List<String> keyIds = Arrays.asList("Author_id", "BookList_id", "Book_id");
     HashSet<MetadataKey> keys = new HashSet<>();
     for (String id : keyIds) {
         MetadataKeyBuilder builder = MetadataKeyBuilder.newKey(id);
         builder.withDisplayName(StringUtils.removeEnd(id, "_id"));
         keys.add(builder.build());
     }
     return keys;
 }
}

我的问题是,类型字段没有填充必要的键

我正在按照本文档执行 - https://docs.mulesoft.com/mule-sdk/1.1/metadata-keys

4

1 回答 1

1

文档中没有提到,但似乎元数据键不会得到解析,除非有匹配的 Input/OutputTypeResolver。

确保匹配的 Input/OutputTypeResolver 与 KeyResolver 具有相同的 CategoryName,并且我还发现 Operation method 和 Input/OutputTypeResolver 中的变量名称应该相同。

我猜逻辑是,如果您没有元数据解析器,则不需要元数据密钥。如果您只需要一个值的下拉列表,您可以使用值提供者 ( https://docs.mulesoft.com/mule-sdk/1.1/value-providers )

于 2019-10-25T09:15:42.630 回答