0

我正在尝试编写一个用 java 编写的 openHab2 绑定。我是一个 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 [错误] [.icAbstractInvocationHandler:101] - 在“org.openhab.binding.testbinging.internal.TestBingingHandler@728656fc”上调用方法“ThingHandler.initialize()”时发生错误: org/apache/http/impl/client/BasicCredentialsProviderjava.lang.NoClassDefFoundError: org/apache/http/impl/client/BasicCredentialsProvider at 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”,arch:“amd64”,家族:“unix”

4

1 回答 1

0

这是因为您的依赖项是运行时的:

<scope>runtime</scope>

您需要将其更改为:

 <scope>compile</scope>

或者删除范围行,因为这是默认范围。

编译时不使用运行时依赖项。您无法阅读更多相关信息:https ://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

于 2018-05-20T19:31:18.407 回答