Closed brucej72 closed 3 months ago
Thanks for reporting @brucej72 We have an issue which we are currently investigating:
https://github.com/micronaut-projects/micronaut-aws/pull/2079
A workaround is to use Micronaut Jackson Databind.
I wrote a CDK sample to test this https://github.com/sdelamo/micronaut-aws-lambda-s3-cdk
Expected Behavior
The tutorial here: https://guides.micronaut.io/latest/micronaut-aws-lambda-s3-event-maven-java.html ...should be able to be followed and run without error.
Note this issue looks like it was explored in #1941 but this does not appear to be fixed.
Actual Behaviour
The function handler is called, but throws an exception:
An error occurred during JSON parsing: java.lang.RuntimeException java.lang.RuntimeException: An error occurred during JSON parsing Caused by: io.micronaut.core.beans.exceptions.IntrospectionException: No deserializable introspection present for type: ResponseElementsEntity responseElements. Consider adding Serdeable.Deserializable annotate to type ResponseElementsEntity responseElements. Alternatively if you are not in control of the project's source code, you can use @SerdeImport(ResponseElementsEntity.class) to enable deserialization of this type. at io.micronaut.serde.support.DefaultSerdeIntrospections.resolveIntrospectionForDeserialization(DefaultSerdeIntrospections.java:196) at io.micronaut.serde.support.DefaultSerdeIntrospections.getDeserializableIntrospection(DefaultSerdeIntrospections.java:160) at io.micronaut.serde.support.deserializers.ObjectDeserializer.createDeserBean(ObjectDeserializer.java:133) at io.micronaut.serde.support.deserializers.ObjectDeserializer.lambda$getDeserializableBean$1(ObjectDeserializer.java:123) at io.micronaut.core.util.SupplierUtil$2.get(SupplierUtil.java:79) at io.micronaut.serde.support.deserializers.ObjectDeserializer.getDeserializableBean(ObjectDeserializer.java:124) at io.micronaut.serde.support.deserializers.ObjectDeserializer.createSpecific(ObjectDeserializer.java:69) at io.micronaut.serde.support.deserializers.DeserBean.findDeserializer(DeserBean.java:592) at io.micronaut.serde.support.deserializers.DeserBean.initProperty(DeserBean.java:476) at io.micronaut.serde.support.deserializers.DeserBean.initializeInternal(DeserBean.java:432) at io.micronaut.serde.support.deserializers.DeserBean.initialize(DeserBean.java:412) at io.micronaut.serde.support.deserializers.ObjectDeserializer.getDeserializableBean(ObjectDeserializer.java:125) at io.micronaut.serde.support.deserializers.ObjectDeserializer.createSpecific(ObjectDeserializer.java:69) at io.micronaut.serde.support.deserializers.collect.CoreCollectionsDeserializers$SpecificOnlyCollectionDeserializer.createSpecific(CoreCollectionsDeserializers.java:334) at io.micronaut.serde.support.deserializers.DeserBean.findDeserializer(DeserBean.java:592) at io.micronaut.serde.support.deserializers.DeserBean.initProperty(DeserBean.java:476) at io.micronaut.serde.support.deserializers.DeserBean.initializeInternal(DeserBean.java:432) at io.micronaut.serde.support.deserializers.DeserBean.initialize(DeserBean.java:412) at io.micronaut.serde.support.deserializers.ObjectDeserializer.getDeserializableBean(ObjectDeserializer.java:125) at io.micronaut.serde.support.deserializers.ObjectDeserializer.createSpecific(ObjectDeserializer.java:69) at io.micronaut.serde.jackson.JacksonJsonMapper.readValue0(JacksonJsonMapper.java:175) at io.micronaut.serde.jackson.JacksonJsonMapper.readValue(JacksonJsonMapper.java:169) at io.micronaut.serde.jackson.JacksonJsonMapper.readValue(JacksonJsonMapper.java:206) at io.micronaut.function.aws.JsonMapperCustomPojoSerializer.fromJson(JsonMapperCustomPojoSerializer.java:70)
Steps To Reproduce
Using mn 4.2.4 (as per the tutorial) or 4.3.0 installed using sdk.
Environment Information
MacOS 14.3 java 17.0.8 2023-07-18 LTS mn 4.2.4 or 4.3.0
Example Application
No response
Version
4.2.4 or 4.3.0