3

I use springframeworks in my project and for JSON we use jackson. One list should be serialized in a specific way, i.e. should have a specific JSON-output. I followed the answers of this thread but this fails.

@JsonSerialize(using = UserDataSerializer.class)
List<TestObj> lstTest;

and

public class UserDataSerializer extends StdSerializer<TestObj> {

    protected UserDataSerializer(Class<TestObj> t) {
        super(t);
    }

    @Override
    public void serialize(TestObj value, JsonGenerator gen, SerializerProvider provider) throws IOException {
        gen.writeStartObject();
        gen.writeObjectField(value.getName(), value.getValue());
        gen.writeEndObject();
    }
}

but unfortunately this approach fails with an exception:

Servlet.service() for servlet [test3backend] in context with path [/test] threw exception [Request processing failed; nested exception is org.springframework.beans.f
actory.UnsatisfiedDependencyException: Error creating bean with name 'me.test.entities.UserDataSerializer': Unsatisfied dependency expressed through constructor paramete
r 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.lang.Class<me.test.entities.TestObj>' av
ailable: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}] with root cause
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.lang.Class<at.me.test.entities.TestObj>' available: expected at leas
t 1 bean which qualifies as autowire candidate. Dependency annotations: {}

Any hints how to properly configure it in my project?

Community
  • 1
  • 1
LeO
  • 4,238
  • 4
  • 48
  • 88

1 Answers1

4

The main problem with this issue was that I did not include a default null constructor, i.e. adding

public UserDataSerializer() {
    this(null);
}

solved this issue.

LeO
  • 4,238
  • 4
  • 48
  • 88