Restfulie server (vRaptor) recebe parametro nulo

3 respostas
N

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

3 Respostas

maxmustang

ta usando q pra testar?

as paginas jsp msmo?

Lucas_Cavalcanti

se vc quer postar um xml, vc precisa anotar o método create com @Consumes ou @Consumes(“application/xml”)

N

maxmustang, pra testar estou usando uma extensão do Firefox: REST Client.

Lucas, era isso. :thumbup: Muito Obrigado.

Criado 10 de abril de 2011
Ultima resposta 10 de abr. de 2011
Respostas 3
Participantes 3