2016-12-13 5 views
1

У меня есть следующие JAX-RS ресурсов,Bean вход, не заселена JAX-RS

@Path("admin/user") 
@Api(value = "Administration - User") 
@Produces(MediaType.APPLICATION_JSON) 
public class UserResource { 

    @POST 
    @Consumes(MediaType.APPLICATION_JSON) 
    public void createUser(@BeanParam User user) { 
     // .... 
    } 
} 

Мой боб Пользователь определяется следующим образом,

public class User { 
    @FormParam("firstName") 
    private String firstName; 

    @FormParam("lastName") 
    private String lastName; 
} 

Когда я сделать запрос на отдых в создайте пользователя с телом запроса, являющимся json, объект User создается, но поля не заполняются. Я смог проверить, действительно ли тело запроса содержит json.

Я использую wildfly 8.2.0.

Мои зависимости Maven включают,

<dependency> 
     <groupId>com.fasterxml.jackson.jaxrs</groupId> 
     <artifactId>jackson-jaxrs-json-provider</artifactId> 
     <version>2.7.4</version> 
    </dependency> 

и

<dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jackson2-provider</artifactId> 
     <version>3.0.10.Final</version> 
     <scope>provided</scope> 
    </dependency> 

Что мне не хватает?

Edit - 1

Когда я вручную читать тело JSon из запроса сервлета и запустить его через картографа Object это, кажется, работает нормально,

ObjectMapper objectMapper = new ObjectMapper(); 

    final User user = objectMapper.readValue(json, User.class); 

ответ

2

Избавиться от @BeanParam и @FormParam , Они не используются для тел JSON. И параметр аннотации-меньше, чтобы заставить его работать.