Получение ошибки при использовании клиента Джерси

Я использую трикотажный клиент для отправки данных на локальный хост. Вот мой код -

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. Но как только я делаю работоспособную банку своего проекта и запускаю банку, она выдает ошибку -

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

Как я могу заставить это работать нормально при выполнении из исполняемой банки?


person Dan    schedule 23.07.2013    source источник
comment
покажите полную командную строку о том, как вы запускаете приложение из исполняемого файла .jar   -  person    schedule 24.07.2013


Ответы (1)


У вас должен быть клиент Джерси .jar на classpath исполняемого .jar, а также на Джерси .jar.

Если вы используете Maven и должны использовать Maven для создания своих артефактов, вы можете использовать подключаемый модуль shade, и он создаст Uberjar вашего кода и все зависимости вашего кода в одном исполняемом файле .jar. Тогда вам не нужно будет беспокоиться об указании всех зависимостей и их транзитивных зависимостей в командной строке.

person Community    schedule 23.07.2013