2016-05-17 82 views
3

我使用Retrofit 2.0.2和OkHttp 3.2.0调用Here Maps Rest API。在Wildfly上使用OkHttpClient导致异常

从单元测试运行,完美的作品,但是当我尝试在Wildfy运行它,我得到一个例外:通过修改Wildfly的配置

Caused by: java.lang.IllegalStateException: Unable to extract the trust manager on [email protected], sslSocketFactory is class sun.security.ssl.SSLSocketFactoryImpl 
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:187) 
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:151) 

我可以解决这个或者这是一个错误OkHttp?

+2

即将OkHttp 3.3有一项功能,将让您指定的信托经理手动,而不是依靠反射鱼出来了的SSLSocketFactory的。你会想要的! –

+0

不幸的是,我没有时间等待它,我需要一个快速解决方案,也许我必须将Retrofit替换为其他东西。 – szilagyif

+0

我尝试与Unirest(http://unirest.io/)一样,并且完美地工作。 – szilagyif

回答

2

我正面临着类似的问题,看起来这是okhttp的最新版本中的错误 - 3.2.0 您可以暂时降级依赖性解决它3.0.1 后来迁移到更稳定的版本!

Maven的依赖关系(要解决):

<dependency> 
     <groupId>com.squareup.okhttp3</groupId> 
     <artifactId>okhttp</artifactId> 
     <version>3.0.1</version> 
</dependency> 
+0

不幸的是,我不能使用它,因为我试图使用OkHttp作为依赖项的Retrofit,所以我无法降级它,因为它是间接依赖项。 – szilagyif