Olá pessoal, estou começando com restfulie + vraptor e estou com dificuldades com as operações POST e PUT, pois o objeto está chegando nulo no controller.
Meu projeto:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>vraptor-test</display-name>
<filter>
<filter-name>vraptor</filter-name>
<filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
</filter>
<filter-mapping>
<filter-name>vraptor</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
</web-app>
Item.class (dominio)
public class Item {
private Integer id;
private String descricao;
//getters e setters
}
ItemsController.class
@Resource
@Path("/items")
public class ItemsController {
private ItemStore store;
private Result result;
public ItemsController(ItemStore store, Result result) {
this.store = store;
this.result = result;
}
@Path("/{id}")
@Get
public void find(Integer id) {
Item item = store.find(id);
result.use(xml()).from(item).serialize();
}
@Path("")
@Post
public void create(Item item) {
System.out.println("ITEM --> " + item); //o item esta nulo
result.use(xml()).from(item).serialize();
}
}
O parametro “item” está chegando nulo no método “create” do controller. Esqueci de alguma conf? Preciso registrar algum conversor para Item?
Estou usando vRaptor 3.3.1 no JBoss 5.1.0.
Para testar estou utilizando um plugin do FF (REST Client) colocando no header a propriedade (Content-Type: application/xml) e enviando o XML:
<item>
<id>1</id>
<descricao>Item de teste</descricao>
</item>
Valeu