7

私のコードは次のとおりです。

@Path("/add")
@POST
@Produces(MediaType.APPLICATION_JSON)
public Response addMembers(List<GroupMemberMap> groupMemberMaps){
    String message = "";            
    System.out.println("Inside addMembers of class "+this.toString());      
    try {
        DBConnection.insertMembers(groupMemberMaps);
        message = "Member(s) added";
        return Response.status(Status.CREATED)
                .entity(message)
                .type(MediaType.TEXT_PLAIN)
                .build();
    } catch(SQLException sqle){
        System.out.println("addMembers catch sqle");
        message = "A problem occured while adding members : "+sqle.getMessage();
        return Response.status(Status.INTERNAL_SERVER_ERROR)
                .entity(message)
                .type(MediaType.TEXT_PLAIN)
                .build();
    }
    catch (Exception e) {
        // TODO Auto-generated catch block
        System.out.println("Inside addMembers catch  "+e.getMessage());
        message = "A problem occured while adding members : "+e.getMessage();
        return Response.status(Status.INTERNAL_SERVER_ERROR)
                .entity(message)
                .type(MediaType.TEXT_PLAIN)
                .build();
    }       
}

しかし、このJsonで呼び出すと:

[
{
    "userId":"3",
    "groupId":"4"
}
]

次の例外が発生します。

javax.servlet.ServletException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: 認識されないフィールド "userId" (クラス com.tazligen.model.GroupMemberMap)、[ソース: org.apache.catalina.connector. CoyoteInputStream@14ec141; 行: 2、列: 15] (参照チェーン経由: com.tazligen.model.GroupMemberMap["userId"])

私のGrouMemberMapモデルクラスは次のとおりです。

package com.tazligen.model;

@XmlRootElement
public class GroupMemberMap {

private String userId;
private String groupId;

public String getUserid() {
    return userId;
}
public void setUserid(String userId) {
    this.userId = userId;
}
public String getGroupId() {
    return groupId;
}
public void setGroupId(String groupId) {
    this.groupId = groupId;
}       }

私はこのような別の方法を試しました:

@Path("/membertest")
@POST   
public String test(List<User> members){
    return "Test subresource members working";
}

jsonで

[{
"userId":"3",
"userName":"John"}]

しかし、これは問題なく動作します:/

誰かの助けが必要です。

4

3 に答える 3