Плагин API Man - конфликт зависимостей Wildfly - PullRequest
0 голосов
/ 09 мая 2019

Я написал плагин 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)

Чтобы попытаться обойти это, я включилследующий файл jboss-deploy-structure.xml в каталоге моих проектов src / main / webapp / WEB-INF

<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 Ответ

1 голос
/ 09 мая 2019

Чтобы избежать дикой загрузки зависимостей, вам нужно добавить исключение.Исключение, которое вы добавили, неверно

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

Также, если вы используете классы, связанные с вышеуказанной зависимостью, в своем коде, тогда предоставьте эти файлы JAR извне в вашей папке classpath / lib для развертываемого.Добавьте ниже две фляги в вашей папке lib.

  1. okhttp-3.xxjar
  2. okio-1.xxjar
...