Uri не Абсолютное исключение при вызове Restful Webservice
Нижеприведенный фрагмент кода используется для вызова моего веб-сервиса с использованием ненадежного API.
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
String uri= "https://127.0.0.1:8443/cas-server-webapp-3.5.0/login";
WebResource resource = client.resource(URLEncoder.encode(uri));
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
queryParams.add("username", "suresh");
queryParams.add("password", "suresh");
resource.queryParams(queryParams);
ClientResponse response = resource.type(
"application/x-www-form-urlencoded").get(ClientResponse.class);
String en = response.getEntity(String.class);
System.out.println(en);
И получение этого исключения при запуске вышеуказанного кода
com.sun.jersey.api.client.ClientHandlerException: java.lang.IllegalArgumentException: URI is not absolute
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:151)
at com.sun.jersey.api.client.Client.handle(Client.java:648)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:680)
Я googled много статьей и did'nt получает где я делаю неправильно.
Боковое примечание: война cas-server-webapp-3.5.0
, развернутая на моей машине в Apache tomacat7
Ответы
Ответ 1
Абсолютный URI определяет схему; URI, который не является абсолютным, называется относительным.
http://docs.oracle.com/javase/8/docs/api/java/net/URI.html
Итак, возможно, ваш URLEncoder не работает так, как вы ожидаете (бит https)?
URLEncoder.encode(uri)
Ответ 2
Вероятно, проблема в том, что вы вызываете URLEncoder.encode() на то, что уже является URI.
Ответ 3
Возможно проблема только в ваших настройках кодировки IDE. Попробуйте установить UTF-8 везде:
![enter image description here]()