Я получаю эту ошибку java.lang.NoCLassDefFoundError: org / apache / http / HttpEntity при запуске приложения.Он компилируется и строит нормально.Но затем я пытаюсь использовать EJB, который импортирует HttpClient, я получаю эту ошибку.
Как я прочитал, мне нужно импортировать jar (httpclient-4.5 и httpcore-4.4.5) во время выполнения.Как мне это сделать?
У меня есть эти банки в моем скрипте gradle.Я бы подумал, что компиляция позаботится о включении всех классов, которые ему нужны для сборки, и будет хороша для запуска.
Я имею в виду HttpClient в классе.Ниже приведена упрощенная версия реализации:
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class httpClientImpl implements httpClient {
public CloseTrailerResponse closeActionFromAdapter(requestObject request) throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(trailerCloseAdapterURL);
try {
..setting stuff
CloseableHttpResponse response = client.execute(httpPost);
}
}
catch(Exception ex) {
//exceptions logged
}
finally {
client.close();
}
return response;
}
}
Этот клиент создается и вызывается в EJB.
import com.client.httpClientImpl;
private HttpClientImpl httpClientInstance = new HttpClientImpl();
private Request request;
private Response response;
//In a method the http client is called...
response = httpClientInstance.closeActionFromAdapter(request);
Когда я получаю доступ к этому классу во время выполнения, я получаю классdef не найден.
Ошибка в том, что ему нужен класс во время выполнения или это что-то еще?Если ему нужен класс во время выполнения, как мне добавить его в classpath?
Спасибо.