Uso Jersey per produrre JSON (con mapping POJO tramite Jackson) e Jetty (inizia con il metodo principale).
Funziona perfetto per Jersey 1.x .:Impossibile abilitare il supporto per JSON basato su POJO per Jackson in Jersey 2.0
ServletHolder sh = new ServletHolder(ServletContainer.class);
sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass",
"com.sun.jersey.api.core.PackagesResourceConfig");
sh.setInitParameter("com.sun.jersey.config.property.packages", "service");
sh.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");
...
context.addServlet(sh, "/rest/*");
Server server = new Server(8080);
server.setHandler(context);
server.start();
Ora ho migrato il mio progetto a Jersey 2.0 e non è riuscito ad abilitare POJO basato vincolante JSON in esso, ottengo il seguente: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class business.entity.ExampleEntity, genericType=class business.entity.ExampleEntity.
Ovviamente , com.sun.jersey.api.json.POJOMappingFeature
non è più valida come Jersey va a org.glassfish
il documentation dire quanto segue:
Per poter utilizzare Jackson come JSON (JAXB/POJO) fornitore è necessario registrarsi JacksonFeature e un ContextResolver per ObjectMapper (se necessario) nel configurabile (client/server).
Ma non riesco a capire come farlo correttamente nel mio caso.
ho creato un po 'project per questa domanda:
ramo master
- ha lavorato per esempio Jersey 1.17.1;
ramo jersey-2.0-migration
- non funziona tentativo di migrare a Jersey 2.0 - test fallito;
succursale jersey-2.0-migrate-client-only
- tentativo non funzionante per utilizzare il client Jersey 2.0 con server Jersey funzionante 1.17.1 - test fallito.
La domanda è: come abilitare obbligatorio in Jersey 2,0
Ha funzionato per me! Grazie tante! Ho aggiunto due nuovi rami al mio piccolo [progetto] (https://github.com/halfstrik/Jersey20Migration/tree/jersey-2.0-migration-success) su GitHub 'jersey-2.0-migrate-server-success' e' jersey -2.0-migration-success' descrivono la soluzione e ha superato il test! – Strikki
Anche io lavoro con 'jersey-media-json-jackson 2.0 '(vedi aggiornamento su' jersey-2.0-migration'), ma senza 'jersey-client 2.0' riceve avvertenze come menzionato in [commenti] (http: //stackoverflow.com/a/16993761/846325) – Strikki
Ore di angoscia perse. Moxy stava fallendo silenziosamente e io dovevo tornare a Jackson e io ero pronto a mettere la mia testa attraverso una finestra. Grazie per questa risposta. – JSager