Это также озадачило меня, когда я экспериментировал с пакетом 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.
Если вы используете функцию зависимостей импорта/добавления Maven в IntelliJ/Eclipse, он найдет для вас все нужные зависимости/файлы jar. – JonasCz
спасибо ... «Maven» - это слово, которое я слышу время от времени. Я не скажу, что это пугает меня, но это заставляет меня вздохнуть и думать «еще одна вещь, чтобы учиться». Я уверен, что мне придется, наверное, сейчас, но разве нет другого, не-Maven, пути? Я действительно использую Eclipse, но полагаю, что я не был? –
http://javasearch.buggybread.com/home.php?keyword=%3DHttpClientBuilder –