【问题标题】:java.lang.NoSuchMethodError & java.lang.NoSuchFieldError: INSTANCE in using Twilio SDKjava.lang.NoSuchMethodError & java.lang.NoSuchFieldError:使用 Twilio SDK 的实例
【发布时间】:2017-10-09 20:19:01
【问题描述】:

我在 java 中使用 Twilio SDK 发送来自 java 问题的短信。我尝试使用 2 个不同版本的 Twilio 库,但出现 2 个不同的错误:

对于 [twilio-java-sdk-6.3.0-jar-with-dependencies.jar],我收到了:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.http.impl.conn.DefaultClientConnectionOperator.<init>(Lorg/apache/http/conn/scheme/SchemeRegistry;Lorg/apache/http/conn/DnsResolver;)V
at org.apache.http.impl.conn.PoolingClientConnectionManager.createConnectionOperator(PoolingClientConnectionManager.java:140)
at org.apache.http.impl.conn.PoolingClientConnectionManager.<init>(PoolingClientConnectionManager.java:114)
at org.apache.http.impl.conn.PoolingClientConnectionManager.<init>(PoolingClientConnectionManager.java:99)
at org.apache.http.impl.conn.PoolingClientConnectionManager.<init>(PoolingClientConnectionManager.java:85)
at org.apache.http.impl.conn.PoolingClientConnectionManager.<init>(PoolingClientConnectionManager.java:93)
at com.twilio.sdk.TwilioClient.<init>(TwilioClient.java:151)
at com.twilio.sdk.TwilioRestClient.<init>(TwilioRestClient.java:23)
at com.twilio.sdk.TwilioRestClient.<init>(TwilioRestClient.java:19)
at iristk.app.bankAsst.Watson.sendMsg(Watson.java:82)
at iristk.app.bankAsst.Watson.main(Watson.java:100)

对于 [twilio-7.9.1-jar-with-dependencies.jar],我收到:

Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.getDefaultRegistry(PoolingHttpClientConnectionManager.java:109)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:116)
at com.twilio.http.NetworkHttpClient.<init>(NetworkHttpClient.java:46)
at com.twilio.http.TwilioRestClient$Builder.build(TwilioRestClient.java:97)
at com.twilio.Twilio.getRestClient(Twilio.java:122)
at com.twilio.base.Creator.create(Creator.java:45)
at iristk.app.bankAsst.Watson.sendMsg(Watson.java:82)
at iristk.app.bankAsst.Watson.main(Watson.java:91)

这2个错误是什么意思?如果可能,如何解决?

谢谢

【问题讨论】:

    标签: java nosuchmethoderror twilio-api


    【解决方案1】:

    您的应用程序似乎有另一个版本的 httpclient&httpcore 与 wilio-java-sdk 不兼容。请检查您的 pom.xml 并删除 httpclient&httpcore 的依赖项。如果您在 pom.xml 中看不到任何 httpclient&httpcore 的依赖,请运行“mvn dependency:tree”查找包含 httpclient&httpcore 的依赖,然后添加排除节点以排除它们。

    wilio-java-sdk-6.3.0-jar-with-dependencies.jar 包含 httpclient(4.2.6) 和 httpcore(4.2.5)

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.2.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.2.5</version>
    </dependency>
    

    twilio-7.9.1-jar-with-dependencies.jar 包含 httpclient(4.5.2) 和 httpcore(4.4.4)

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4.4</version>
    </dependency>
    

    【讨论】:

    • 我的既不是 maven 项目,也不是 pom.xml 存在。如果有,如何排除httpcore和httpclient的冲突。我试图将我的项目转换为 maven 项目,但它导致:“错误:找不到或加载主类”。你能给我建议吗?
    • 从类路径中找到httpcore和httpclient
    • 不知道你是什么类型的项目,所以想知道你是如何构建项目并先启动应用的
    • 你的意思是构建路径(使用eclipse)吗?我没有在列表中看到 httpcore 和 httpclient?它可以包含在其他.jar中吗?如果有,如何检查?
    • IrisTK 在 Windows 上工作,我使用的是 MAC,所以我无法尝试更多来了解如何找到库路径。如果您使用 Eclipse 创建/运行应用程序,您可以打开构建路径对话框检查 httpcore/httpclient,打开构建路径对话框,在 [Project Explorer] 中右键单击您的项目,单击弹出菜单 [Build Path] - > [Configure Build Path ...],然后切换到选项卡[Library]。
    猜你喜欢
    • 2014-03-04
    • 2021-09-19
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多