2015-09-22 27 views
4

我使用jersey client休息調用。進口我的代碼是:類不應該使用聲納問題爲Jersey客戶端

import com.sun.jersey.api.client.Client; 
import com.sun.jersey.api.client.ClientResponse; 
import com.sun.jersey.api.client.WebResource; 

一切工作正常。我正在使用Sonar來檢查我的代碼質量。

聲納正呈現出主要問題爲:

從類和包不應該被用來

這個確實不好的做法「的com.sun 。」「太陽」。使用來自太陽的課程?

如果是,有什麼選擇?

+2

約'com.sun'類的警告是不正確。有很多這些,它們是API的記錄部分。例如,JNDI就是其中的一個。這是必須避免的「太陽」課程。 – EJP

回答

5

這是更好地遷移到JAX-RS 2.0的客戶端類。但是有些重構是必要的。請參閱遷移指南here。例如,如果你寫這樣前:

Client client = Client.create(); 
WebResource webResource = client.resource(restURL).path("myresource/{param}"); 
String result = webResource.pathParam("param", "value").get(String.class); 

你應該寫信這樣的:

Client client = ClientFactory.newClient(); 
WebTarget target = client.target(restURL).path("myresource/{param}"); 
String result = target.pathParam("param", "value").get(String.class); 
0

因爲他們是內部API:他們是受一個無證或不支持的方式來改變,他們都綁定到特定的JRE/JDK(太陽在你的情況下),限制你的程序的可移植性。

儘量避免使用這樣的API,總是喜歡公開記錄和指定的類。

參考 - It is a bad practice to use Sun's proprietary Java classes?

+1

com.sun。球衣庫的類別不是內部類別。 – nos

+0

請你能詳細說明你的評論嗎?我閱讀com.sun。*是內部的,如上所述 – FGI

相關問題