resteasy : Wie konsumieren Karte als QueryParam in resteasy-service-api
Hallo, ich bin mit resteasy-api, die ich verwenden müssen, um die Karte als QueryParam. Ich kann verwenden Sie die Liste als QueryParam aber wenn ich versuche, eine pass-Karte bekomme ich die Fehlermeldung, die unten erwähnt werden.
Hier ist mein service code
@GET
@Path("/movies")
@Produces(MediaType.APPLICATION_JSON)
public SolrDocumentList getPropertiesByKeyword1(@QueryParam("filterMap") final Map<String,String> list)
{}
[org.jboss.resteasy.core.ExceptionHandler] (http-/0.0.0.0:18080-1) Nicht ausführen POST /solr/search/Eigenschaften: org.jboss.resteasy.spi.ReaderException: org.codehaus.jackson.Karte.JsonMappingException: Kann nicht instanziiert Wert der type [map-Typ; class java.util.LinkedHashMap, [einfacher Typ, Klassen-java.lang.String] -> [einfacher Typ, Klassen-java.lang.String]], die aus JSON-String; kein single-String-Konstruktor/factory-Methode (durch Verweis Kette: com.rentr.solr.SearchRequestDto["filterMap"])
bei org.jboss.resteasy.core.MessageBodyParameterInjector.Spritzen(MessageBodyParameterInjector.java:183) [resteasy-jaxrs-3.0.6.Final.jar:]
bei org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:88) [resteasy-jaxrs-3.0.6.Final.jar:]
bei org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:111) [resteasy-jaxrs-3.0.6.Final.jar:]
bei org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:280) [resteasy-jaxrs-3.0.6.Final.jar:]
bei org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:234) [resteasy-jaxrs-3.0.6.Final.jar:]
bei org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:221) [resteasy-jaxrs-3.0.6.Final.jar:]
bei org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356) [resteasy-jaxrs-3.0.6.Final.jar:]
bei org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179) [resteasy-jaxrs-3.0.6.Final.jar:]
bei org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) [resteasy-jaxrs-3.0.6.Final.jar:]
Können wir mit Map als QueryParam, Wenn ja dann wie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Des eingespritzten Wert wird nicht ein
Map
. Mit einemMap
Sie sind darauf hindeutet, dass es unterschiedliche Schlüssel, wenn in der Wirklichkeit, es gibt nur eine"filter"
. Anstatt also eineMap
verwenden Sie eineList<String>
Weitere alternative ist, um alle die Abfrage-Parameter aus der
UriInfo
(scheint unnötig, nur zeigt die Optionen an 🙂Aus der
queryMap
haben, können Sie versuchen, eine Abfrage der Parameterwerte vom key, und es gibt eine Liste der Werte für diesen Schlüssel@QueryParam
mit dem Namen des Schlüssels. Andernfalls, wenn Sie möchten, dass alle query params (alle Tasten), dann verwenden Sie dieUriInfo
und erhalten Sie die Abfrage anzeigen. Dann kann man Sie alle durch den Schlüssel-Namen