Jersey 2: Replace WebResource.queryParams()
There is no equivalent to the method queryParams() in WebTarget, but there is
the method queryParam() which adds a single query parameter.
The solution is to add parameters one at a time.
Reference: https://jakartaee.github.io/rest/apidocs/2.1.6/javax/ws/rs/client/WebTarget.html#queryParam(java.lang.String,java.lang.Object...)
diff --git a/core/src/main/java/de/ids_mannheim/korap/web/ClientsHandler.java b/core/src/main/java/de/ids_mannheim/korap/web/ClientsHandler.java
index 85f6f5f..7ff806d 100644
--- a/core/src/main/java/de/ids_mannheim/korap/web/ClientsHandler.java
+++ b/core/src/main/java/de/ids_mannheim/korap/web/ClientsHandler.java
@@ -1,7 +1,6 @@
package de.ids_mannheim.korap.web;
import com.sun.jersey.api.client.UniformInterfaceException;
-import com.sun.jersey.core.util.MultivaluedMapImpl;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.exceptions.StatusCodes;
@@ -10,6 +9,8 @@
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MultivaluedMap;
import java.net.URI;
+import java.util.List;
+import java.util.Map;
/**
* @author hanl
@@ -29,10 +30,8 @@
public String getResponse (String path, String key, Object value)
throws KustvaktException {
- MultivaluedMap map = new MultivaluedMapImpl();
- map.add(key, value);
try {
- return service.path(path).queryParams(map).get(String.class);
+ return service.path(path).queryParam(key, value).get(String.class);
}
catch (UniformInterfaceException e) {
throw new KustvaktException(StatusCodes.REQUEST_INVALID);
@@ -40,13 +39,16 @@
}
- public String getResponse (MultivaluedMap map, String ... paths)
+ public String getResponse (MultivaluedMap<String, String> map, String ... paths)
throws KustvaktException {
try {
WebTarget resource = service;
for (String p : paths)
resource = resource.path(p);
- resource = resource.queryParams(map);
+ for (Map.Entry<String, List<String>> e : map.entrySet()) {
+ for (String value : e.getValue())
+ resource = resource.queryParam(e.getKey(), value);
+ }
return resource.get(String.class);
}
catch (UniformInterfaceException e) {
diff --git a/core/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java b/core/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java
index 2a7e1db..939cc84 100644
--- a/core/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java
+++ b/core/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java
@@ -8,7 +8,6 @@
import java.util.Map;
import java.util.Random;
-import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriBuilder;
import javax.ws.rs.ext.Provider;
@@ -17,7 +16,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import com.sun.jersey.core.util.MultivaluedMapImpl;
import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerRequestFilter;
import com.sun.jersey.spi.container.ContainerResponseFilter;
@@ -72,16 +70,6 @@
private void send (ContainerRequest request) {
Random random = new SecureRandom();
- MultivaluedMap<String, String> params = new MultivaluedMapImpl();
- params.add("idsite", "2");
- params.add("rec", "1");
- if (!customVars.isEmpty())
- params.add("_cvar", translateCustomData());
- params.add("cip", request.getHeaderValue("Host"));
- params.add("cookie", "false");
- params.add("r", String.valueOf(random.nextDouble()));
- params.add("action_name", request.getRequestUri().toASCIIString());
-
Locale l = null;
if (request.getAcceptableLanguages() != null)
l = request.getAcceptableLanguages().get(0);
@@ -96,7 +84,7 @@
.queryParam("r", String.valueOf(random.nextDouble()))
.queryParam("action_name",
request.getRequestUri().toASCIIString())
- .queryParams(params).accept("text/html")
+ .accept("text/html")
.header("Host", request.getHeaderValue("Host"))
.header("User-Agent", request.getHeaderValue("User-Agent"))
.acceptLanguage(l).method("GET");