dev@jersey.java.net

[Jersey] Error 400

From: VINCENT Matthieu (Prestataire) <"VINCENT>
Date: Fri, 11 Jun 2010 17:39:32 +0200

Hi,

 

 I'm trying to develop a client/server REST service. But when I'm
launching my client, I got an 400 error.

Don't understand why

 

Here is my exception :

com.sun.jersey.api.client.UniformInterfaceException: Status: 400

      at
com.sun.jersey.api.client.WebResource.handle(WebResource.java:512)

      at
com.sun.jersey.api.client.WebResource.access$200(WebResource.java:68)

      at
com.sun.jersey.api.client.WebResource$Builder.put(WebResource.java:424)

      at Requestor.doRequestWithData(Requestor.java:53)

      at RestTest.main(RestTest.java:37)

 

Here is the client :

public class RestTest {

      

      public static void main(String[] args) {

            

            try {

                  Requete1 req = new Requete1();

                  URI uri =
UriBuilder.fromUri("http://localhost/yoda-client/service/yoda").port(497
5).build();

      

                  WebResource web = Client.create().resource(uri);

      

                  Requestor reque = new Requestor(web);

                  

                  reque.doRequestWithData(req);

            } catch (Exception ex) {

                  ex.printStackTrace();

            }

 

Here is the requestor :

@Produces(MediaType.APPLICATION_XML)

public final class Requestor implements YodaRequestor {

 

    private WebResource web;

    

    List<Map<ServiceParameter, String>> dataToSend;

 

    public Requestor(WebResource w) {

      this.web = w;

    }

    

    public ServiceResponse doRequestWithData(YodaRequest req) {

      return
web.accept("application/xml").type(MediaType.APPLICATION_XML).put(Servic
eResponse.class,req);

    }

 

Here is the object (quite simple...) :

@XmlRootElement(name="req")

public class Requete1 {

 

}

 

Here is the Service which receive messages :

@Path("/yoda")

@Produces(MediaType.APPLICATION_XML)

public final class Service {

 

    @PUT

    @Consumes(MediaType.APPLICATION_XML)

    public final ServiceResponse
doServiceWithData(JAXBElement<YodaRequest> request) {

      

      System.out.println(".... In doServiceWithData ....");

      return new ServiceResponse();

      

    }

 

Thanks in advance for explanation

Matthieu

 

 

_______________________________________

 

Matthieu VINCENT (Prestataire)

 

Application Antenne

DSI Canal+ France
1 place du spectacle
92863 - Issy-Les-Moulineaux Cedex 9