com.jayway.jsonpath и Weblogic 12c - PullRequest
       12

com.jayway.jsonpath и Weblogic 12c

0 голосов
/ 05 октября 2019

В моем проекте Spring-Boot я использую эту зависимость:

<dependency>
  <groupId>com.jayway.jsonpath</groupId>
  <artifactId>json-path</artifactId>
  <version>2.0.0</version>
</dependency>

Эта зависимость внутренне использует зависимость json-smart 2.3. Когда я пытаюсь развернуть свой проект в Weblogic 12C, я получаю следующую ошибку:

java.lang.NoSuchFieldError: defaultReader
at com.jayway.jsonpath.spi.json.JsonSmartJsonProvider.<init> (JsonSmartJsonProvider.java:39)
at com.jayway.jsonpath.internal.DefaultsImpl.jsonProvider(DefaultsImpl.java:21)
at com.jayway.jsonpath.Configuration.defaultConfiguration(Configuration.java:174)
at com.jayway.jsonpath.internal.JsonContext.<init>(JsonContext.java:52)
at com.jayway.jsonpath.JsonPath.parse(JsonPath.java:596)

Я уже пробовал решения, предложенные в:

JSON Parser -java.lang.NoSuchFieldError: defaultReader

В частности, я попытался добавить в свой файл weblogic.xml предпочтение зависимостей net.minidev.json. * и присвоить приоритет моим военным классам с помощью: Предпочитать-web-inf-занятия без успеха. Мой сервер Weblogic имеет старую версию smart-json (версия 1.3), и он всегда получает преимущество при развертывании моего проекта. Я не могу обновить серверную зависимость smart-json jar, так как у меня нет прав на изменение. Я также безуспешно пытался использовать папку внешних зависимостей Weblogic ( Как предпочесть JAR из домена Weblogic по сравнению с файлами из системы weblogic ).

Есть ли способ сделать com.jayway. Работа с jsonpath зависит от Weblogic?

Спасибо.

1 Ответ

0 голосов
/ 10 октября 2019

Попробуйте вместо этого использовать предпочитаемый-пакет-приложения в вашем файле weblogic.xml, т.е.

<prefer-application-packages>
      <package-name>com.jayway.*</package-name>
</prefer-application-packages>

. Чтобы это работало, убедитесь, что предпочитаемый-веб-inf-классы равен false (это значение по умолчанию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...