2016-03-03 10 views
2

Мы хотим интегрировать последнюю версию Джерси в Glassfish 4.1.Glassfish 4.1 - Последняя версия Джерси

Glassfish предоставляет версии 1.29.0 для исполнения в Джерси, поэтому мы добавили Jersey 2.22.2 в WEB-INF/lib. Он подходит для работы с новой версией.

Но это правильное решение? Будет ли Glassfish всегда помещать библиотеки в WEB-INF до своего класса в classpath?

+0

Возможно, это не так. Проверьте [Обновление Jersey 2 в GlassFish 4] (http: // blog.dejavu.sk/2014/01/21/updating-jersey-2-in-glassfish-4/) –

+0

Я не хочу обновлять модули Glassfish. Но как Glassfish обрабатывает библиотеки, которые поставляются с WAR /, включенными в webapp? Есть ли способ показать класс Glassfish для приложения? –

+0

Я не уверен. –

ответ

-1

GlassFish предпочтет свою собственную реализацию над теми, которые предоставляются приложением.

Замена соответствующего модуля GlassFish является жизнеспособным вариантом.

Альтернативой может быть использование сервера Payara, который является производным от GlassFish и выпускается каждые 3 месяца, поэтому имеет более современные модули. The Jersey version currently in Payara Server is 2.22.1, который является только одной второстепенной версией ниже вашей цели и может быть достаточно.

+0

Это не жизнеспособный вариант, потому что клиенты работают со своей собственной стеклянной рыбой и не хотят заменять библиотеки. –

+2

Если это не вариант для модификации установки в стеклянную фазу, вы все равно можете заставить стеклянную рыбку рассматривать библиотеки в своем веб-приложении перед глобальными. Вам просто нужно предоставить файл glassfis h-web.xml в вашем приложении по стандарту web.xml в WEB-INF. Установите делегат = "false" в элементе class-loader файла glassfish-web.xml. Для получения дополнительной документации см. Руководство по развертыванию Glassfish, раздел C - Элементы сервера GlassFish Дескрипторы развертывания. – OndrejM

+0

Спасибо, это именно то, что я хочу знать! –

2

Если вы не можете модифицировать установку в стеклянную фазу, вы все равно можете заставить стекловидную оболочку рассматривать библиотеки в своем веб-приложении перед глобальными. Вам просто нужно предоставить файл glassfish-web.xml в своем приложении по стандарту web.xml в WEB-INF. Установите делегат = "false" в элементе class-loader файла glassfish-web.xml. Дополнительные сведения см. В разделе Руководство по развертыванию Glassfish, раздел C - Элементы дескрипторов развертывания сервера GlassFish.

Благодаря OndrejM!

+0

Спасибо! Это исправление сделало стеклянную рыбку загруженными моими комплектами Jackson quickxml вместо установленных на них. Paul –

0

Наконец-то я могу сказать, что есть нет способа заменить вещи Джерси в Glassfish с более новыми версиями. Даже если используется delegate = "false", он предпочтет свою включенную версию. Читая руководство по развертыванию, я узнал небольшое уведомление. В уведомлении говорится, что есть некоторые библиотеки, которые будут исправлены, поскольку делегат не будет работать (для избежания побочных эффектов я думаю.