API Man插件-Wildfly依赖冲突

时间:2019-05-09 10:09:01

标签: wildfly wildfly-10 apiman

我已经编写了一个API Man插件,该插件使用com.squareup.okhttp3:okhttp:3.11.0作为依赖项,它对com.squareup.okio:okio:jar:1.14.0具有暂时的依赖关系。但是,看来Wildfly(10.1.0.Final)正在为此com.squareup.okio:okio:jar:1.4.0使用不同的版本,结果我得到了以下异常。

java.lang.NoSuchMethodError: okio.BufferedSource.readUtf8LineStrict(J)Ljava/lang/String;
   at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:215)
   at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
   at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88)
   at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)

为解决此问题,我在我的项目src / main / webapp / WEB-INF目录中包含了以下jboss-deployment-structure.xml

<jboss-deployment-structure>
  <deployment>
    <!-- Exclusions allow you to prevent the server from automatically adding
      some dependencies -->
    <exclusions>
      <module name="okio" />
    </exclusions>
  </deployment>
</jboss-deployment-structure>

它似乎还没有解决

1 个答案:

答案 0 :(得分:1)

为避免依赖性负载,您需要添加一个排除项。您添加的排除项不正确

<exclusions>
  <module name="com.squareup.okhttp3" /> ///Correct exclusion
</exclusions>

此外,如果您在代码中使用与以上依赖项相关的类,请在可部署的classpath / lib文件夹中外部提供这些jar文件。在lib文件夹中的两个jar下方添加。

  1. okhttp-3.x.x.jar
  2. okio-1.x.x.jar