azure-functions-java-worker
azure-functions-java-worker copied to clipboard
Try binding to EventData
EventHubs library is part of the lib folder:

lib folder is part of default class path.
Binding to eventdata fails with:
Exception: UnsupportedOperationException: Interface can't be instantiated! Interface name: com.microsoft.azure.eventhubs.EventData
Stack: java.lang.RuntimeException: Unable to invoke no-args constructor for interface com.microsoft.azure.eventhubs.EventData. Registering an InstanceCreator with Gson for this type may fix this problem.
[3/4/2019 2:44:00 AM] at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:228)
[3/4/2019 2:44:00 AM] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212)
[3/4/2019 2:44:00 AM] at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
[3/4/2019 2:44:00 AM] at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:72)
[3/4/2019 2:44:00 AM] at com.google.gson.Gson.fromJson(Gson.java:927)
[3/4/2019 2:44:00 AM] at com.google.gson.Gson.fromJson(Gson.java:892)
[3/4/2019 2:44:00 AM] at com.google.gson.Gson.fromJson(Gson.java:841)
EventData object needs to rehydrated from the input data:
EventData data = new EventData(message);
LinkedHashMap<String, Object> sysProps = new LinkedHashMap<>();
sysProps.put("x-opt-offset", offset);
sysProps.put("x-opt-sequence-number", sequenceNumber);
addSystemProperties(data, sysProps);