2013-02-13 15 views
7

以下のコードスニペットは、安らかなAPIを使用してWebサービスを呼び出すために使用しています。UriではありませんRestful Webserviceを呼び出すときに絶対例外が発生する

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) 

は、私は多くの記事をGoogleで検索し、私が間違っているのどこ取得did'nt上記のコードを実行中にこの例外を取得。

サイドノート:

+0

ur ** URI **では、あなたは** https **で** http **ではありませんか?一度それを確認してください。 – SudoRahul

+0

はい、HTTPSのみです。私のTomcatサーバーでSSLが有効になっています。 –

答えて

6

tomacat7のApacheに私のマシン上で展開cas-server-webapp-3.5.0戦争絶対URIスキームを指定します。絶対的でないURIは相対的であると言われます。

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

あなたが(HTTPSビット)を期待しているように、おそらくあなたのURLEncoderが動作していませんか?

URLEncoder.encode(uri) 
2

すでにURIであるものに対してURLEncoder.encode()を呼び出している可能性があります。

関連する問題