boa noite pessoa
meu primeiro post aqui :oops:
então galera, meu problema é o seguinte…tenho um webservice com rest, uma livraria, usando o jersey, mas não consigo consigo gravar uma locação, que contem varios livros
na verdade, ele nem passa pelo metodo de gravação, me retorna ja um bad request
to vendo tb que os xmls gerados pelo jaxb e pelo xstream tão saindo diferentes, o que é um problema iuaheiua
xml do jaxb:
[code]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 1 Everton 2 123465 java filho 1 filho filho [/code]xml do xstream
<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
[code]
@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;
}
}[/code]
aqui ele nem imprime o “Quantidade de livros”. antes disso, o meu cliente ja recebe um bad request
Cliente
[code]
public 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;
}
}[/code]
alguem tem alguma luz?
obrigado