Mule - обновление сторонней библиотеки во время выполнения

Я использую Mule Server 3.8 EE, который приносит с собой commons-lang 2.4. Сторонней библиотеке в моем проекте требуется commons-lang 2.6, потому что она использует метод, который был представлен в этой версии.

Поэтому, когда я только запускаю свое приложение, я получаю java.lang.NoSuchMethodError

Есть ли способ обновить зависимость во время выполнения? Что я пробовал до сих пор:

  • в том числе commons-lang 2.6 в моем приложении -> безрезультатно, сначала выбирается тот из среды выполнения
  • замена банки непосредственно во время выполнения -> ошибки в студии, что отсутствует 2,4 банка

1 ответ

Так что, может быть, я опоздал, НО - это ваш ответ. Добавьте библиотеки, более новые в дистрибутиве jar, в Build Path. Под экраном Java Build Path вы должны увидеть перечисленные библиотеки. Мне нужно было использовать Apache http-клиент 4.5.6, и это очень интересно, потому что оно содержит много других зависимостей, поэтому ваш вопрос был ОЧЕНЬ актуален. Решение состоит в том, чтобы положиться на соглашения JAVA (а не на mule -oops Anypoint или что-либо еще) и убедиться, что JVM сначала загружает мои файлы классов. Тогда он не загрузит старые из банки мулов. И вот я перешел на вкладку Order and Export и переместил Mule вниз. Это простое, тривиальное изменение заставляет его работать. Я думаю, что если бы мы работали с командной строкой и vim, мы бы все это знали. Но весь графический интерфейс IDE и все остальное заставляет нас забыть о самых простых вещах. Пожалуйста, используйте его в добром здравии.:)

Другие вопросы по тегам