Senden Sie eine HashMap mit Jersey für REST-web-service
Bin ich mit Jersey für einen REST-webservice.
Ich möchte zum senden einer HashMap auf dem server, aber ich habe ein problem. Dieser code funktioniert gut, wenn ich parameter ändern der Methode zum String, aber mit einer HashMap, es funktioniert nicht :
ClientConfig config = new DefaultClientConfig();
config.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
Client client = Client.create(config);
URI uri = UriBuilder.fromUri("http://localhost:8081/serviceProxy_socle-01.00.00-SNAPSHOT/services/tableauDeBord/subventions").build();
System.out.println(uri.toString());
WebResource service = client.resource(uri);
GenericType<TableauDeBordImpl<CoupsDPouceImpl>> informationsDossier = new GenericType<TableauDeBordImpl<CoupsDPouceImpl>>(){};
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("rne", "0240984P");
TableauDeBordImpl<CoupsDPouceImpl> content = service
.accept(MediaType.APPLICATION_JSON)
.entity(params, MediaType.APPLICATION_XML)
.type(MediaType.APPLICATION_XML).post(informationsDossier);
Dies ist die Stacktrace :
Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class java.util.HashMap, and MIME media type, application/xml, was not found
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:148)
at com.sun.jersey.api.client.Client.handle(Client.java:642)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:613)
at com.sun.jersey.api.client.WebResource.access$300(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:503)
at fr.liberaccess.pool.tester.Tester.testCoupsDpouce(Tester.java:63)
at fr.liberaccess.pool.tester.Tester.<init>(Tester.java:39)
at fr.liberaccess.pool.tester.Tester.main(Tester.java:188)
Caused by: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class java.util.HashMap, and MIME media type, application/xml, was not found
at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:299)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:203)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:146)
... 7 more
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihren Bedarf zu erstellen MessageBodyWriter und kommentieren Sie die Klasse als Provider.
Müssen Sie auch sagen, Trikot über den neuen Anbieter.
Aus der Bedienungsanleitung.