2015-05-23 5 views
2

Это также озадачило меня, когда я экспериментировал с пакетом Lucene ... но теперь это пример, который я пытаюсь получить в файле HTTP/JSON/URL, используя Java , На самом деле я использую Jython ... поскольку это не SSCCE, я оставил его в (более сжатом) Jython. Пользователям Java не должно быть трудно понять.Java/Jython - как связать необоснованные классы с конкретными файлами jar

Я получил код от SO объяснить, как отправить объект JSON с помощью Java:

import javax.json 
import org.apache.http.impl.client as httpclient 

httpClient = httpclient.HttpClientBuilder.create().build() 
try: 
    request = javax.json.HttpPost("http://yoururl") # Rubbish: see below 
    params = javax.json.StringEntity(json.toString()) 
    request.addHeader("content-type", "application/json") 
    request.setEntity(params) 
    httpClient.execute(request) 
# handle response here... 
except Exception, ex: 
    # handle exception here 
    print ex 
httpClient.close() 

, когда я пытаюсь запустить это, я сначала получить «класс не найден» для HttpClientBuilder.
Немного googling приводит меня к https://hc.apache.org/downloads.cgi ... поэтому я смотрю на эту страницу и думаю: это, наверное, «HttpClient» загрузка, в которой я нуждаюсь ... поэтому я загружаю и извлекаю 10 файлов jar. Я предполагаю, что мне нужно включить httpclient-4.4.1.jar. Верный.

Следующая вещь «class not found» - ConnectionReuseStrategy: Я исследую, а затем включаю httpcore-4.4.1.jar. Верный.

После этого я получаю «класс не найден» для org.apache.commons.logging.LogFactory. Угадай, я включаю commons-logging-1.2.jar. Верный.

После этого я получаю

'JavaPackage' объект не имеет атрибута 'HttpPost'

Это сообщение Jython означает, что я угадала пакет "javax.json" для HttpPost неправильно.
Итак, я google «HttpPost» и узнаю, что он является членом org.apache.http.client.methods. Это не говорит мне, какой файл jar включить в следующий ... Я должен угадать!

Мой вопрос: предположим, что вы можете найти (вероятный) пакет, откуда приходит класс, можете ли вы узнать, как пакет относится к фактическому файлу jar? Как я уже сказал, это была большая загадка для меня с Lucene, и теперь со всем этим материалом Apache HTTP.

+0

Если вы используете функцию зависимостей импорта/добавления Maven в IntelliJ/Eclipse, он найдет для вас все нужные зависимости/файлы jar. – JonasCz

+0

спасибо ... «Maven» - это слово, которое я слышу время от времени. Я не скажу, что это пугает меня, но это заставляет меня вздохнуть и думать «еще одна вещь, чтобы учиться». Я уверен, что мне придется, наверное, сейчас, но разве нет другого, не-Maven, пути? Я действительно использую Eclipse, но полагаю, что я не был? –

+0

http://javasearch.buggybread.com/home.php?keyword=%3DHttpClientBuilder –

ответ

2

www.findjar.com (или http://findjar.com как какой-нибудь был бы)!

позже Не систематическая, однако: это не представляется включать автоматизированную систему. Вы должны представить банки «вероятного кандидата». Я отправил банку elasticsearch. Но Луцен также, кажется, отсутствует. Начали читать о Maven. Вздох.

Смежные вопросы