0

I am trying to insert user from API call. There are normal parameters in Bean like first name, last name, etc.

There is one field in Bean like Map<String, Set<String>> userExtraFieldMap;

I am calling my API using Postman & all user details are auto set in Bean when get request except userExtraFieldMap.

Code is working properly for Content-Type: application/json but not working for Content-Type: application/xml

userExtraFieldMap parameter is non mandatory.

UserDetails.java

@XmlRootElement(name = "user")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = {"id", "name", "userExtraFieldMap""})
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonRootName("user")
@Schema(description="The UserDetails Response Model",name="UserDetailsModel")
public class UserDetails implements Serializable {

    private static final long serialVersionUID = 1L;

    @POJOMappingAnnotation (destinationFieldName = "userId")
    private int id;

    @POJOMappingAnnotation (ignoreSetValue = true)
    private UserName name;

    @XmlElement(name="userExtraFields")
    @JsonProperty("userExtraFields")
    private Map<String,Set<String>> userExtraFieldMap;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public UserName getName() {
        return name;
    }

    public void setName(UserName name) {
        this.name = name;
    }

    public Map<String, Set<String>> getUserExtraFieldMap() {
        return userExtraFieldMap;
    }

    public void setUserExtraFieldMap(Map<String, Set<String>> userExtraFieldMap) {
        this.userExtraFieldMap = userExtraFieldMap;
    }

UserAPI.java

    @POST
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    @Consumes({MediaType.APPLICATION_JSON,MediaType.TEXT_PLAIN, MediaType.APPLICATION_XML})
    @JacksonFeatures(serializationEnable = SerializationFeature.WRAP_ROOT_VALUE)    
    public Response createUser(@Parameter(description="Version Of API",example="2") @PathParam("version") String version, UserDetails user) throws Exception {
     ...
    }

0 Answers0