2013-07-23 174 views
0

我正在使用球衣客戶端將數據推送到本地主機。這裏是我的代碼 -使用Jersey客戶端獲取錯誤

public CloudConnection(JSONObject jsonPush) throws ClientProtocolException, IOException, JSONException { 
    ClientConfig config = new DefaultClientConfig(); 
    Client client = Client.create(config); 
    WebResource webResource = client.resource(UriBuilder.fromUri("http://localhost/visual/savedata.php").build()); 
    ClientResponse response = webResource.path("restPath").path("resourcePath").type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).post(ClientResponse.class, jsonPush); 
} 

當我在Eclipse中執行此它工作正常,並在我的本地數據庫插入使用savedata.php一個recoord。但是,一旦我做我的項目運行的JAR並運行它拋出錯誤的罐子 -

a message body writer for java type, class org.codehaus.jettison.json.JSONObject, and MIME media type, application/json was not found 

從運行的JAR執行時,我怎樣才能使這項工作是否正常?

+1

顯示關於如何從您的可執行文件啓動應用程序的完整命令行.jar –

回答

1

您必須在可執行文件.jar的classpath以及Jersey .jar文件夾上擁有Jersey客戶端.jar。

如果您正在使用Maven和你應該使用Maven構建您的工件,可以使用shade插件,它會創建你的代碼的Uberjar,並在一個可執行的.jar的代碼的所有依賴文件。那麼你不需要擔心在命令行中指定所有依賴關係及其傳遞依賴關係。