Le corps d'un message écrivain de type Java, la classe myPackage.B, et le type MIME application/octet-stream, n'a pas été trouvé

Je suis nouveau à webservices RESTful et a essayé de mettre à jour mon @OneToMany relation d'un client autonome de l'application, mais je ne suis pas en mesure de le faire. Je suis en utilisant le Maillot de mise en œuvre de JAX-RS qui est livré avec Glassfish 3.1.1.

J'ai une classe A qui a un @OneToMany relation avec la classe B.

MyRestClient est mon client autonome qui appelle mon service web RESTful qui a été déployé sur Glassfish 3.1.1.

MyRestClient.java

public class MyRestClient {
    public static void main(String[] args) {    
        Client client = Client.create();        
        WebResource resource = client.resource("http://localhost:8080/myapp/rest/a/update/123");    
        B b1 = new B("debris");     
        ClientResponse response = resource.put(ClientResponse.class, b1);
        System.out.println(response.getEntity(A.class).getTitle() + " has " + response.getEntity(A.class).getBList().size() + " Bs.");
    }
}

AResource est un EJB session bean qui je suis en utilisant comme Reposant webservice.

AResource.java

@Stateless
@Path("/a")
public class AResource {

    @EJB
    private AManager aManager;

    @PUT
    @Consumes(MediaType.APPLICATION_XML)
    @Produces(MediaType.APPLICATION_XML)
    @Path("/update/{id}")
    public Response updateA(B b, @PathParam("id") int id) {
        A a = aManager.findAById(id);
        a.addB(b);
        return Response.status(Status.OK).entity(a).build();
    }
}

Quand je lance le client, je reçois le message d'erreur suivant:
com.soleil.jersey.l'api.client.ClientHandlerException: le corps d'Un message écrivain de type Java, la classe myPackage.B, et le type MIME application/octet-stream, n'a pas été trouvé.

Suivantes sont les objets du domaine autonome dans mon application client qui est un appel à la AResource EJB session bean qui je suis en utilisant le service web RESTful.

A.java

@XmlRootElement
public class A implements Serializable{ 

    private List<B> bList = new ArrayList<B>();
    public List<B> getBList() {
        return bList;
    }
    //remaining code

}

B.java

public class B implements Serializable {

    private String text;
    private A a;    


    @XmlTransient
    public A getA() {
        return a;
    }

    public void afterUnmarshal(Unmarshaller u, Object parent) {
        this.a = (A) parent;
    }
    //remaining code

}

Quelqu'un pourrait-il m'aider à comprendre pourquoi ce qui se passe et comment je dois résoudre ce problème?

InformationsquelleAutor skip | 2011-10-20