Mule SDK问题-无法使用@MetadataKeyId获取元数据的密钥

Mule SDK问题-无法使用@MetadataKeyId获取元数据的密钥,mule,mule-studio,mule-sdk,Mule,Mule Studio,Mule Sdk,我正在使用Mule SDK开发自定义连接器。我正在获取必要的元数据。以下是我使用的两个代码段: weatherconnectroperties.java: public class WeatherConnectrOperations { public void select(@MetadataKeyId(RecordKeysResolver.class) String type) { } } public class RecordKeysResolver implements TypeK

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

public class WeatherConnectrOperations {

 public void select(@MetadataKeyId(RecordKeysResolver.class) String type) {
 }
}
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;
 }
}
RecordKeysResolver.java:

public class WeatherConnectrOperations {

 public void select(@MetadataKeyId(RecordKeysResolver.class) String type) {
 }
}
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;
 }
}
公共类RecordKeysResolver实现TypeKeysResolver{
@凌驾
公共字符串getCategoryName(){
返回“记录”;
}
@凌驾
公共集GetKey(MetadataContext上下文)抛出MetadataResolvingException、ConnectionException{
System.out.println(“你好”);
List keyIds=Arrays.asList(“作者id”、“图书列表id”、“图书id”);
HashSet keys=新的HashSet();
for(字符串id:keyIds){
MetadataKeyBuilder=MetadataKeyBuilder.newKey(id);
builder.withDisplayName(StringUtils.removeEnd(id,“\u id”);
key.add(builder.build());
}
返回键;
}
}
我的问题是,类型字段没有填充必要的键


我是按照本文档进行操作的-

文档中没有提到,但元数据密钥似乎无法解析,除非有匹配的输入/输出类型解析器

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

我猜逻辑是,如果没有元数据解析器,就不需要元数据密钥。如果只需要值的下拉列表,可以使用值提供程序()