2013-02-13 91 views
7

Aşağıdaki kod snippet'i, web servisimi dinlenmeyen API kullanarak aramak için kullanıyor.Uri Mutsuz WebService çağrılırken mutlak istisna yok

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); 

Ve

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) 

Birçok makaleler googled ve ben yanlış yapıyorum nerede in olsun yukarıdaki kodu çalıştırırken bu durum alma.

Yan not :

+0

ur ** URI ** 'da, ** https ** değil, ** http **? Lütfen bir kez kontrol edin. – SudoRahul

+0

Evet, sadece HTTPS. Tomcat sunucumda SSL etkin. –

cevap

6

Mutlak URI tomacat7 Apache benim makinede dağıtılan cas-server-webapp-3.5.0 savaş düzeni belirler; mutlak olmayan bir URI'nin rölatif olduğu söylenir. Eğer (https bit) bekliyorsanız olarak

http://docs.oracle.com/javase/8/docs/api/java/net/URI.html

Yani, belki URLEncoder çalışmıyor?

URLEncoder.encode(uri) 
2

sorun zaten bir URI şeye URLEncoder.encode() aradığınız olasıdır.