Gostaria de uma dica de como eu passo um objeto para um serviço do tipo Post?
eu estou fazendo assim porem me parece que a solicitação nem esta localizando o serviço.
Mensagem de erro que aparece no teste.
com.sun.jersey.api.client.UniformInterfaceException: POST http://localhost:8080/estacionaraquisrv/rest/ufsrv/add returned a response status of 404 Not Found
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:676)
at com.sun.jersey.api.client.WebResource.post(WebResource.java:251)
at br.com.estacionaraqui.servicos.cliente.UfServicosCliente.adicionarUf(UfServicosCliente.java:54)
at br.com.estacionaraqui.servicos.cliente.Teste2.executar(Teste2.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
---Objeto que desejo enviar para o Serviço (item)----
UfServicosCliente ufCliente = new UfServicosCliente();
Uf item = new Uf();
item.setNome("Tocantins");
item.setSigla("TO");
ufCliente.adicionarUf(item);
------------------------------------------------------------------------------
---Consumindo o serviço---
Me parece que falta definir quais os media types serão trafegados (XML ou JSON e assim por diante). Também falta colocar a classe Uf aqui para que a gente veja se está anotada corretamente. Ah, uma dica: uma URL assim @Path("/add/{item}") não é REST, é RPC. Se você quiser usar REST corretamente, só o fato de responder a POST já indica que o recurso está sendo adicionado, você não deve colocar isso na URL.
[]'s
P
perbony
Ola segue a classe UF
eu coloquei o /add para diferenciar um serviço do outro pois terei dois serviços do tipo POST vi em um outro forum que deve ser feito assim mais alterei e tambem não funcionou.
Eu tenho muito pouco conhecimento de programação o que sei é o pouco que passaram na faculdade.
packagebr.com.estacionaraquisrv.modelo;importjava.io.Serializable;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.NamedQueries;importjavax.persistence.NamedQuery;importjavax.persistence.SequenceGenerator;importjavax.xml.bind.annotation.XmlRootElement;@Entity@NamedQueries({@NamedQuery(name="Uf.bySigla",query="from Uf u where u.sigla = :sigla"),@NamedQuery(name="Uf.byNome",query="from Uf u order by u.nome")})@XmlRootElementpublicclassUfimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@Column(insertable=false)@SequenceGenerator(name="Uf_seq",sequenceName="Uf_seq",initialValue=1,allocationSize=1)@GeneratedValue(generator="Uf_seq",strategy=GenerationType.SEQUENCE)privateIntegerid;@Column(length=2,nullable=false,unique=true)privateStringsigla;@Column(length=50,nullable=false)privateStringnome;publicUf(){super();}publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicStringgetSigla(){returnsigla;}publicvoidsetSigla(Stringsigla){this.sigla=sigla;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=prime*result+((id==null)?0:id.hashCode());result=prime*result+((nome==null)?0:nome.hashCode());result=prime*result+((sigla==null)?0:sigla.hashCode());returnresult;}@Overridepublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;Ufother=(Uf)obj;if(id==null){if(other.id!=null)returnfalse;}elseif(!id.equals(other.id))returnfalse;if(nome==null){if(other.nome!=null)returnfalse;}elseif(!nome.equals(other.nome))returnfalse;if(sigla==null){if(other.sigla!=null)returnfalse;}elseif(!sigla.equals(other.sigla))returnfalse;returntrue;}}
P
perbony
asaudate:
Me parece que falta definir quais os media types serão trafegados (XML ou JSON e assim por diante). Também falta colocar a classe Uf aqui para que a gente veja se está anotada corretamente. Ah, uma dica: uma URL assim @Path("/add/{item}") não é REST, é RPC. Se você quiser usar REST corretamente, só o fato de responder a POST já indica que o recurso está sendo adicionado, você não deve colocar isso na URL.
[]'s
Respondi sem citar, você recebe a informação mesmo assim?
A
Alexandre_Saudate
perbony:
asaudate:
Me parece que falta definir quais os media types serão trafegados (XML ou JSON e assim por diante). Também falta colocar a classe Uf aqui para que a gente veja se está anotada corretamente. Ah, uma dica: uma URL assim @Path("/add/{item}") não é REST, é RPC. Se você quiser usar REST corretamente, só o fato de responder a POST já indica que o recurso está sendo adicionado, você não deve colocar isso na URL.
[]'s
Respondi sem citar, você recebe a informação mesmo assim?
Recebo sim.
Então, me parece que só falta colocar @Consumes (não é necessário colocar @Produces já que você não produz dados, de fato). Outra coisa, me parece que a URL que você está tentando acessar está errada, mesmo. A URL é essa: http://localhost:8080/estacionaraquisrv/rest/ufsrv/add . De onde veio o “rest” ?
[]'s
P
perbony
asaudate:
perbony:
asaudate:
Me parece que falta definir quais os media types serão trafegados (XML ou JSON e assim por diante). Também falta colocar a classe Uf aqui para que a gente veja se está anotada corretamente. Ah, uma dica: uma URL assim @Path("/add/{item}") não é REST, é RPC. Se você quiser usar REST corretamente, só o fato de responder a POST já indica que o recurso está sendo adicionado, você não deve colocar isso na URL.
[]'s
Respondi sem citar, você recebe a informação mesmo assim?
Recebo sim.
Então, me parece que só falta colocar @Consumes (não é necessário colocar @Produces já que você não produz dados, de fato). Outra coisa, me parece que a URL que você está tentando acessar está errada, mesmo. A URL é essa: http://localhost:8080/estacionaraquisrv/rest/ufsrv/add . De onde veio o "rest" ?
O que eu não entendo é quem nem exibe essa mensagem "Foi===>>>>".
O procedimento de apagar e buscar dados no banco de dados consigo fazer normalmente.
A
Alexandre_Saudate
É porque você tem que ajustar, também, o media type no seu client. Por isso ele começou a dar a mensagem. QUanto ao /rest, tente trocar por /* no web.xml e veja o que acontece…
[]'s
P
perbony
asaudate:
É porque você tem que ajustar, também, o media type no seu client. Por isso ele começou a dar a mensagem. QUanto ao /rest, tente trocar por /* no web.xml e veja o que acontece…
[]'s
Ola, amigo agradeço por todos as dicas que me passou porem não funcionou, testei com todos tipos de mediaType que existe e não deu certo. Com relação ao trocar o /rest pr /* ficou mais legal pois eliminei mais um path no codigo.
Existe alguma forma de descobrir o que pode estar causando esse problema?
P
perbony
asaudate:
É porque você tem que ajustar, também, o media type no seu client. Por isso ele começou a dar a mensagem. QUanto ao /rest, tente trocar por /* no web.xml e veja o que acontece…
[]'s
Amigo consegui chamar o Serviço, eu não expecifiquei o tipo de media Type, pois ai ele aceita qualquer tipo de media, porem agora deu um erro acho que no tomcat.