Ich habe mich entschieden, auf Jersey 2.5
zu verschieben, und ich bin mit bestimmten Problemen in Java Beans
Konvertierung zu JSON
konfrontiert. Ich habe eine User
Bean und von einem Dienst versuche ich, eine Liste von users
zurückzugeben.Upgrade von Jersey 1. * nach Jersey 2.5
Mein Service-Code, der die Liste der Benutzer abruft:
@GET
@Path("getAllUsers")
@Produces(MediaType.APPLICATION_JSON)
public List<User> getAllUsers() {
//Fetching users list here
return users;
}
Ich erhalte folgende Ausnahme von Server-Konsole:
[org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=java.util.List<com.example.User>.] with root cause
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=java.util.List<com.example.User>.
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:227)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:149)
at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:103)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:149)
at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:88)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:149)
at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1139)
at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:574)
at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:381)
at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:371)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:262)
Bin ich alle Abhängigkeiten oder jede 2.5 spezifische Konfiguration fehlt?
Nein. Welchen JSON-Provider verwenden Sie? Laufen Sie auf GF4 oder verwenden Sie einen anderen Container? –
@MichalGajdos Jackson und Tomcat. –
Danke, um das klarzustellen. Sie haben eine Abhängigkeit von 'jersey-media-json-jackson' oder direkt von Jackson 2.x und keinem anderen JSON-Anbieter (d. H.' Jersey-media-moxy'). Habe ich recht? –