<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<locacao>
<livros>
<livro>
<autor>
<id>1</id>
<nome>Everton</nome>
</autor>
<id>2</id>
<isbn>123465</isbn>
<titulo>java</titulo>
</livro>
</livros>
<usuario>
<email>filho</email>
<id>1</id>
<nome>filho</nome>
<senha>filho</senha>
</usuario>
</locacao>
<org.utfpr.pojo.Locacao>
<usuario>
<id>1</id>
<nome>filho</nome>
<senha>filho</senha>
<email>filho</email>
</usuario>
<livros>
<org.utfpr.pojo.Livro>
<id>2</id>
<autor>
<id>1</id>
<nome>Everton</nome>
</autor>
<titulo>Java</titulo>
<isbn>123465</isbn>
</org.utfpr.pojo.Livro>
</livros>
</org.utfpr.pojo.Locacao>
Codigo do meu controlador
@Path("locacao")
@Consumes("text/xml")
public class LocacaoResource extends Resource {
@POST
@Produces("text/xml")
public Response cadastrarLocacao(Locacao locacao){
try {
System.out.println("Quantidade de livros: "+locacao.getLivros().size());
new DaoLocacao(HibernateUtil.sessao()).cadastra(locacao);
return CREATED;
} catch (Exception e) {
e.printStackTrace();
return CREATED;
}
}
aqui ele nem imprime o "Quantidade de livros". antes disso, o meu cliente ja recebe um bad request
Clientepublic boolean salvaLocacao(Locacao locacao){
try {
HttpClient cliente = new HttpClient();
PostMethod pm = new PostMethod(Server.URL+"locacao");
XStream xs = new XStream();
String locXML = xs.toXML(locacao);
JAXBContext context = JAXBContext.newInstance(new Class[]{Locacao.class});
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(locacao, new File("C:/mar.xml"));
System.out.println(locXML);
StringRequestEntity sre =
new StringRequestEntity(locXML, "text/xml","UTF-8");
pm.setRequestEntity(sre);
int status = cliente.executeMethod(pm);
if(status == HttpStatus.SC_CREATED)
return true;
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
alguem tem alguma luz?
obrigado