cxf - Mixin annotation not getting honored when passed as a parameter -


i have third party class specialobject as:

public class specialobject {     private string name;     private integer id;     private date date;     public string getfoo() {return "foo";} //outlier     public string getname() { return name;}     public integer getid() {return id;}     public date getdate() {return date;}     public void setname(string name) {this.name = name;}     public void setid(integer id) {this.id = id;}     public void setdate(date date) {this.date = date;} } 

i wish project out name , date properties when serializing it. using magic of mixinannotation jackson, created mixin interface as:

@jsonautodetect(gettervisibility = visibility.none) public interface specialobjectmixin {     @jsonproperty     public string getname();     @jsonproperty     public date getdate(); } 

in order facilitate handling of specialobject parameter, have defined specialobjecthandler implements fromstring() method.

@override public specialobject fromstring(string json) {     try {         return objectmapper.readvalue(json, specialobject.class);     } catch (ioexception exception) {         throw new illegalargumentexception("unable write json output",                 exception);     } } 

when deserializer invokes method, objectmapper throws error

caused by: org.codehaus.jackson.map.exc.unrecognizedpropertyexception: unrecognized field "foo" (class com.kilo.specialobject), not marked ignorable  @ [source: java.io.stringreader@2d2217da; line: 1, column: 60] (through reference chain: com.kilo.specialobject["foo"]) @ org.codehaus.jackson.map.exc.unrecognizedpropertyexception.from(unrecognizedpropertyexception.java:53) @ org.codehaus.jackson.map.deser.stddeserializationcontext.unknownfieldexception(stddeserializationcontext.java:267) @ org.codehaus.jackson.map.deser.std.stddeserializer.reportunknownproperty(stddeserializer.java:673) @ org.codehaus.jackson.map.deser.std.stddeserializer.handleunknownproperty(stddeserializer.java:659) @ org.codehaus.jackson.map.deser.beandeserializer.handleunknownproperty(beandeserializer.java:1365) @ org.codehaus.jackson.map.deser.beandeserializer._handleunknown(beandeserializer.java:725) @ org.codehaus.jackson.map.deser.beandeserializer.deserializefromobject(beandeserializer.java:703) @ org.codehaus.jackson.map.deser.beandeserializer.deserialize(beandeserializer.java:580) @ org.codehaus.jackson.map.objectmapper._readmapandclose(objectmapper.java:2732) @ org.codehaus.jackson.map.objectmapper.readvalue(objectmapper.java:1863) @ com.kilo.specialobjecthandler.fromstring(specialobjecthandler.java:34) 

my question is there way can have objectmapper (org.codehaus.jackson.map.objectmapper) honor annotations mixin had configured deal name , date? feel free point out elementary may have overlooked. in advance!

it problem configuration. mixin set on serialization config , not on deserialization config causing issue. setting on both configs solves problem.


Comments