开发者社区> 问答> 正文

实例化OSSClient时出错java.lang.NoSuchMethodError: org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>(Ljavax/net/ssl/SSLContext;Ljavax/net/ssl/HostnameVerifier;)V

_UPRB_QNWO__0T_BUR_I_0在SSM项目中使用OSSClient来操作时, 在service层实例化OSSClient
OSSClient client = new OSSClient(Constants.OSS_ENDPOINT,Constants.OSS_ACCESS_KEY_ID,Constants.OSS_ACCESS_KEY_SECRET);(其中Constants是常量类,这三个变量分别是存在常量类里的Endpoint , accesskeyid , accesskeysecret;)
时报错:java.lang.NoSuchMethodError: org.apache.http.conn.ssl.SSLConnectionSocketFactory.(Ljavax/net/ssl/SSLContext;Ljavax/net/ssl/HostnameVerifier;)V,但是很奇怪的是在Main方法中能实例化OSSClient并能进行相关操作。
项目中的httpclient.jar是4.4.1版本的,换了其它版本也不行。446I_314X_B_OFAI35GNQQ

展开
收起
bryant5051 2017-10-25 15:55:03 14617 0
3 条回答
写回答
取消 提交回答
  • 我也遇到这个问题,在本地环境ok,但是发布linux会报这个错。我的项目中除了oss外,也用到了httpclient 3.3.5版。我发现的问题是当我把本地3.3.5版去掉,只保留oss中4.4.1版时,放在linux中tomcat解压,结果发现在webapp中lib下还存在3.3.5的版本和这次打包的4.4.1版本。早果断删掉3.3.5后,服务上图片成功上传。。。。emm原来这个tomcat重新部署启动的时候没有更新包,没有添加清理缓存导致。。。希望我的情况能帮到大家

    2019-07-17 21:41:01
    赞同 展开评论 打赏
  • 我也遇到这种情况了,我做了如下操作,不知道是哪块生效了,要是还有人出问题,可以逐个试试

    修改pom.xml文件,添加了如下内容

        <repositories>
            <repository>
                <id>sonatype-nexus-staging</id>
                <name>Sonatype Nexus Staging</name>
                <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
    
        </repositories>
            <dependency>
                <groupId>com.github.kevinsawicki</groupId>
                <artifactId>http-request</artifactId>
                <version>6.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-core</artifactId>
                <version>3.2.2</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-vod</artifactId>
                <version>2.2.0</version>
            </dependency>
    2019-07-17 21:41:01
    赞同 1 展开评论 打赏
  • 应该是依赖包的子依赖先被加载了导致的!
    可以使用mvn dependency:tree获取依赖树
    把子依赖从对应的dependency中移除!

    2019-07-17 21:41:01
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何通过 Serverless 提高 Java 微服务治理效 立即下载
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载

相关镜像