Masalah Mule SDK - Tidak dapat mengambil kunci untuk metadata menggunakan @MetadataKeyId

Saya menggunakan Mule SDK untuk mengembangkan konektor khusus. Saya sedang berupaya mengambil metadata yang diperlukan. Berikut dua cuplikan yang saya gunakan: 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;
 }
}

Masalah saya adalah, bidang tipe tidak diisi dengan kunci yang diperlukan

Saya melakukan sesuai dokumen ini - https://docs.mulesoft.com/mule-sdk/1.1/metadata-keys


person Nikeshh Baskaran    schedule 09.06.2019    source sumber


Jawaban (1)


Ini tidak disebutkan dalam dokumentasi, tetapi tampaknya kunci metadata tidak akan terselesaikan kecuali ada Input/OutputTypeResolver yang cocok.

Pastikan Input/OutputTypeResolver yang cocok memiliki CategoryName yang sama dengan KeyResolver dan saya juga menemukan bahwa nama variabel harus sama dalam metode Operasi dan Input/OutputTypeResolver.

Saya kira logikanya adalah Anda tidak memerlukan kunci metadata jika Anda tidak memiliki pemecah metadata. Jika Anda hanya memerlukan daftar dropdown nilai, Anda dapat menggunakan Penyedia Nilai (https://docs.mulesoft.com/mule-sdk/1.1/value-providers)

person mp77    schedule 25.10.2019