ปัญหา Mule SDK - ไม่สามารถดึงคีย์สำหรับข้อมูลเมตาโดยใช้ @MetadataKeyId

ฉันใช้ 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


person Nikeshh Baskaran    schedule 09.06.2019    source แหล่งที่มา


คำตอบ (1)


ไม่ได้กล่าวถึงในเอกสารประกอบ แต่ดูเหมือนว่าคีย์ข้อมูลเมตาจะไม่ได้รับการแก้ไขเว้นแต่จะมี Input/OutputTypeResolver ที่ตรงกัน

ตรวจสอบให้แน่ใจว่า Input/OutputTypeResolver ที่ตรงกันมี CategoryName เดียวกันกับ KeyResolver และฉันยังพบว่าชื่อของตัวแปรควรเหมือนกันในวิธี Operation และ Input/OutputTypeResolver

ฉันเดาว่าตรรกะก็คือคุณไม่จำเป็นต้องมีคีย์ข้อมูลเมตาหากคุณไม่มีตัวแก้ไขข้อมูลเมตา หากคุณต้องการเพียงรายการค่าแบบเลื่อนลง คุณสามารถใช้ Value Providers (https://docs.mulesoft.com/mule-sdk/1.1/value-providers)

person mp77    schedule 25.10.2019