Существует ли версия клиентской библиотеки Java Postmark, которая использует Джерси 1.x вместо 2.x? - PullRequest
0 голосов
/ 12 июня 2018

У меня есть приложение веб-службы RESTful в java, развернутое на google app-engine, которое использует Джерси 1.18.6.Я хочу использовать почтовый Java-клиент Postmark для отправки транзакционных электронных писем с него.Когда я его интегрировал, я увидел следующее исключение:

javax.ws.rs.core.Response$Status$Family.familyOf(I)Ljavax/ws/rs/core/Response$Status$Family

Из того, что я смог найти, я думаю, что эта ошибка была из-за того, что использовались две разные (и, вероятно, несовместимые) версии трикотажа, 1.18.6 для jersey-server, jersey-guice и jersey-bundle и 2.25.1 для jersey-client (по почтовому штемпелю).

Затем я попытался сделать джерси-версию 1.18,6 повсюду, поэтому в моемВ основном проекте, включая зависимость для штемпеля, я исключил jersey-client (добавив заголовок исключений) и отдельно добавил зависимость jersey-client в моем основном проекте.

Но затем я получил следующую ошибку:

java.lang.NoClassDefFoundError: javax/ws/rs/core/MultivaluedHashMap

Я думаю, что класс MultivaluedHashMap присутствует только в версиях jax-rs 2.x (совместимых с версиями jersey 2.x)

Итак, мои вопросы:

  1. Существует ли версия java-клиентской библиотеки postmark, в которой используется jersey 1.x вместо jersey 2.x?

  2. Если нет, то какие параметры доступныЯ хакроме миграции моего основного проекта с трикотажа 1.x на трикотаж 2.x.Я не хочу этого делать, так как нам придется переносить не только зависимости Джерси, но я думаю, что некоторые другие вещи, такие как хитрость, широ и т. Д., Могут занять много времени.Кроме того, не кажется оптимальным модифицировать несколько существующих зависимостей только для включения одного дополнительного модуля.

Ответы [ 3 ]

0 голосов
/ 14 июня 2018

как Mureinik , упомянутое выше, когда мы работали над библиотекой, наш план в Postmark заключался в использовании более новых версий библиотеки, поскольку в долгосрочной перспективе они являются лучшими вариантами.

На нашем Github page Руперт сделал хорошие предложения, из которых я считаю отдельный ClassLoader хорошим выбором.В ближайшие пару дней я немного поиграюсь с библиотечным кодом на совместимости, однако мы всегда за использование новых библиотек для нашей кодовой базы.

0 голосов
/ 14 июня 2018

пожалуйста, проверьте мой последний комментарий на странице проблем Github для возможного решения для использования более старой версии Джерси https://github.com/wildbit/postmark-java/issues/11

Должно быть довольно легко перенести библиотеку в Jersey 1.x путем переноса только класса HttpClientна вашей стороне.

0 голосов
/ 12 июня 2018

Нет. Самая первая фиксация проекта pom.xml уже использовала Джерси 2.25.1

...