{
"name": "fxBoughtCurrencySettlementStatus",
"type": [
"null",
{
"type": "enum",
"name": "CurrencySettlementStatus",
"doc": "FXSettCurrencySettlementStatus Enum",
"symbols": [
"PAID",
"UNPAID",
"NOT_ACTIONED"
]
}
],
"doc": "FX Bought Currency Settlement Status",
"default": null
},
< /code>
dto: < /p>
@JsonProperty(required = false)
private String fxBoughtCurrencySettlementStatus;
< /code>
Code -Snippet des Java -Moduls, das die Nachricht an das Thema sendet < /p>
Schema currencySettlementStatusSchema =
SchemaBuilder.enumeration("CurrencySettlementStatus")
.symbols("PAID", "UNPAID", "NOT_ACTIONED");
GenericData.EnumSymbol fxBoughtCurrencySettlementStatusEnum =
new GenericData.EnumSymbol(
currencySettlementStatusSchema, dto.getFxBoughtCurrencySettlementStatus());
fxTradeStatusChange.put("fxBoughtCurrencySettlementStatus", fxBoughtCurrencySettlementStatusEnum);
< /code>
Nachrichtennutzlast -Snippet (über Postman) < /p>
"fxBoughtCurrencySettlementStatus": "PAID",
< /code>
Ich erhalte die folgende Ausnahme, wenn ich versuche, Nachricht mit Postman zu senden. < /p>
Caused by: org.apache.avro.UnresolvedUnionException: Not in union ["null",{"type":"enum","name":"CurrencySettlementStatus","namespace":"com.x.avro","doc":"FXSettCurrencySettlementStatus Enum","symbols":["PAID","UNPAID","NOT_ACTIONED"]}]: PAID (field=fxBoughtCurrencySettlementStatus)
< /code>
Wenn ich explizit Nullwert anbietet, funktioniert er gut, z. B. < /p>
fxTradeStatusChange.put("fxBoughtCurrencySettlementStatus", null);
< /code>
Wenn ich das gleiche in der Nachrichtennutzlast über Postman tue, gibt es eine ähnliche Ausnahme an. < /p>
"fxBoughtCurrencySettlementStatus": null,
< /code>
Not in union ["null",{"type":"enum","name":"CurrencySettlementStatus","namespace":"com.x.avro","doc":"FXSettCurrencySettlementStatus Enum","symbols":["PAID","UNPAID","NOT_ACTIONED"]}]: null (field=fxBoughtCurrencySettlementStatus)
< /code>
Based on the avro schema, I believe the following should work i.e. "PAID" is an acceptable value based on the avro schema.
"fxBoughtCurrencySettlementStatus": "PAID"
< /code>
Current outcome:
Caused by: org.apache.avro.UnresolvedUnionException: Not in union ["null",{"type":"enum","name":"CurrencySettlementStatus","namespace":"com.x.avro","doc":"FXSettCurrencySettlementStatus Enum","symbols":["PAID","UNPAID","NOT_ACTIONED"]}]: PAID (field=fxBoughtCurrencySettlementStatus)
< /code>
Expected outcome:
Message should be sent by the producer without any issues.
[kafka-producer-network-thread | producer-1] INFO org.apache.kafka.clients.Metadata - [Producer clientId=producer-1] Cluster ID: JXBmtyH0RiulC1Pmq8mJtw
[kafka-producer-network-thread | producer-1] INFO org.apache.kafka.clients.producer.internals.TransactionManager - [Producer clientId=producer-1] ProducerId set to 0 with epoch 0
Folgendes ist das Ausschnitt des AVRO -Schemas: < /p> [code] { "name": "fxBoughtCurrencySettlementStatus", "type": [ "null", { "type": "enum", "name": "CurrencySettlementStatus", "doc": "FXSettCurrencySettlementStatus Enum", "symbols": [ "PAID", "UNPAID", "NOT_ACTIONED" ] } ], "doc": "FX Bought Currency Settlement Status", "default": null }, < /code> dto: < /p> @JsonProperty(required = false) private String fxBoughtCurrencySettlementStatus; < /code> Code -Snippet des Java -Moduls, das die Nachricht an das Thema sendet < /p> Schema currencySettlementStatusSchema = SchemaBuilder.enumeration("CurrencySettlementStatus") .symbols("PAID", "UNPAID", "NOT_ACTIONED");
GenericData.EnumSymbol fxBoughtCurrencySettlementStatusEnum = new GenericData.EnumSymbol( currencySettlementStatusSchema, dto.getFxBoughtCurrencySettlementStatus());
fxTradeStatusChange.put("fxBoughtCurrencySettlementStatus", fxBoughtCurrencySettlementStatusEnum); < /code> Nachrichtennutzlast -Snippet (über Postman) < /p> "fxBoughtCurrencySettlementStatus": "PAID", < /code> Ich erhalte die folgende Ausnahme, wenn ich versuche, Nachricht mit Postman zu senden. < /p> Caused by: org.apache.avro.UnresolvedUnionException: Not in union ["null",{"type":"enum","name":"CurrencySettlementStatus","namespace":"com.x.avro","doc":"FXSettCurrencySettlementStatus Enum","symbols":["PAID","UNPAID","NOT_ACTIONED"]}]: PAID (field=fxBoughtCurrencySettlementStatus) < /code> Wenn ich explizit Nullwert anbietet, funktioniert er gut, z. B. < /p> fxTradeStatusChange.put("fxBoughtCurrencySettlementStatus", null); < /code> Wenn ich das gleiche in der Nachrichtennutzlast über Postman tue, gibt es eine ähnliche Ausnahme an. < /p> "fxBoughtCurrencySettlementStatus": null, < /code> Not in union ["null",{"type":"enum","name":"CurrencySettlementStatus","namespace":"com.x.avro","doc":"FXSettCurrencySettlementStatus Enum","symbols":["PAID","UNPAID","NOT_ACTIONED"]}]: null (field=fxBoughtCurrencySettlementStatus) < /code> Based on the avro schema, I believe the following should work i.e. "PAID" is an acceptable value based on the avro schema. "fxBoughtCurrencySettlementStatus": "PAID" < /code> Current outcome: Caused by: org.apache.avro.UnresolvedUnionException: Not in union ["null",{"type":"enum","name":"CurrencySettlementStatus","namespace":"com.x.avro","doc":"FXSettCurrencySettlementStatus Enum","symbols":["PAID","UNPAID","NOT_ACTIONED"]}]: PAID (field=fxBoughtCurrencySettlementStatus) < /code> Expected outcome: Message should be sent by the producer without any issues. [kafka-producer-network-thread | producer-1] INFO org.apache.kafka.clients.Metadata - [Producer clientId=producer-1] Cluster ID: JXBmtyH0RiulC1Pmq8mJtw [kafka-producer-network-thread | producer-1] INFO org.apache.kafka.clients.producer.internals.TransactionManager - [Producer clientId=producer-1] ProducerId set to 0 with epoch 0 [/code]
Ich schreibe Java Avro Producer Code für mein Projekt. Ich habe ein AVRO-Schema für alle Felder registriert, die übergeben werden müssen. com.schema.avro ,
Fields :
}
Ich verwende den Feldwert...
Ich versuche, konfluente Abhängigkeiten für die Kafka -Avro -Serialisierung und das Schema -Registrierungs -Client in meiner Spring -Boot -Anwendung hinzuzufügen. Wenn ich jedoch versuche, das...
Ich versuche, über OpenAPI in meinem ASP.NET Core 9 -Projekt eine ordnungsgemäße Enumerzeugung zu erhalten, damit ich ein TypeScript -Schema mit
erstellen kann npx openapi-typescript -o...