Я экспериментирую с написанием привязки openHab2, написанной на java. Я парень C++, и java для меня новичок. Код нарушения выглядит следующим образом:
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
...
@Override
public void initialize() {
...
CredentialsProvider credsProvider = new BasicCredentialsProvider();
...
}
Я добавил org.apache.httpcomponents.htpclient_4.5.2.v20170210-0925.jar в путь сборки как внешний jar, и программа собирается без проблем. В этом проекте в качестве системы сборки используется Maven, с которым я тоже не знаком, поэтому я добавил:
<dependencies>
<dependency>
<groupId>org.apache.httpcomponent</groupId>
<artifactId>httpclient</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
в файл pom.xml.
Когда я запускаю систему, я получаю эту ошибку:
2018-05-20 09:51:38.574 [ОШИБКА] [.i.c.AbstractInvocationHandler:101] — Произошла ошибка при вызове метода «ThingHandler.initialize ()» на «org.openhab.binding.testbinging.internal.TestBingingHandler@728656fc» : org/apache/http/impl/client/BasicCredentialsProviderjava.lang.NoClassDefFoundError: org/apache/http/impl/client/BasicCredentialsProvider в org.openhab.binding.testbinging.internal.TestBingingHandler.initialize(TestBingingHandler.java:63)
2018-05-20 09:51:38.576 [ОШИБКА] [.c.thing.internal.ThingManager:700] — Исключение при инициализации обработчика вещи «testbinging:sample:0ac3dcf3»: org/apache/http/impl/client /BasicCredentialsProviderjava.lang.NoClassDefFoundError: org/apache/http/impl/client/BasicCredentialsProvider
На мой неподготовленный взгляд похоже, что путь к классам среды выполнения установлен неправильно.
Я использую версию eclipse-oxygen Oxygen.3a Release (4.7.3a), идентификатор сборки: 20181405.1200 и $ mvn -version Apache Maven 3.3.9 Дом Maven: /usr/share/maven Версия Java: 1.8.0_171, поставщик: Домашняя страница Oracle Corporation Java: /usr/lib/jvm/java-8-openjdk-amd64/jre
Спасибо, Стив. Язык по умолчанию: en_US, кодировка платформы: UTF-8. Название ОС: «linux», версия: «4.9.0-5-amd64», архитектура: «amd64», семейство: «unix».