Я использую Glassfish Jersey JAX-RS на сервере Java 11 и Tomcat 9. Я обновил свою версию на Джерси до 2.27 недавно после того, как объект @Context в моем приложении обнуляется. Этот объект принадлежит стороннему API.
Версия Jersey в стороннем API, имеющая элемент context, равна 1.19, а также принадлежит пакету com.sun, а не той, которую я использую, - org.glassfish.
Мой вызванный метод Rest выглядит так:
@GET
@Produces(MediaType.APPLICATION_JSON)
public Pageable<Role> getRoles(@Context final Search search) throws ServerException {
return new Pageable<>(identityManagementService.getRoles(), search);
}
, который вызывает следующее:
public Pageable(final List<T> list, final Search search) {
this.count = list.size();
this.data = list;
if (search.getLimiter() != null && search.getLimiter().getCount() != 0) {
this.data = list.stream()
.skip(search.getLimiter().getOffset())
.limit(search.getLimiter().getCount())
.collect(Collectors.toList());
}
}
Сторонний Pom.xml имеет следующую запись:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
<optional>true</optional>
<exclusions>
<exclusion>
<artifactId>asm</artifactId>
<groupId>asm</groupId>
</exclusion>
</exclusions>
</dependency>
В моем файле pom.xml есть следующая запись:
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.27</version>
</dependency>
Во время выполнения объект поиска обнуляется, что приводит к сбою приложения. Есть ли проблема совместимости между двумя версиями джерси или я что-то упустил? Кто-нибудь уже использует Jersey JAX-RS 2.27 и Java 11 вместе?