从球衣 1.18.1 迁移到球衣 1.19 时出现 NoClassDefFoundError javax/ws/rs/core/Application

NoClassDefFoundError javax/ws/rs/core/Application while migrating from jersey 1.18.1 to jersey 1.19

当我升级 jersey 的版本时,我在尝试启动我的 Web 应用程序时遇到上述异常。 我正在使用 jersey 库来实现 JAXBContextResolver 其中 implements ContextResolver<JAXBContext>。 在异常中我看到:

Caused by: java.lang.NoClassDefFoundError: javax/ws/rs/core/Application.

配置:

<jersey-server.version>1.19</jersey-server.version>
<jersey-core.version>${jersey-server.version}</jersey-core.version>
<jersey-servlet.version>${jersey-server.version}</jersey-servlet.version>
<jersey-json.version>${jersey-server.version}</jersey-json.version>
<jersey-client.version>${jersey-server.version}</jersey-client.version>

代码:

public class JAXBContextResolver implements ContextResolver<JAXBContext> {
private static final Class<?>[] classes = { Customer.class, Model.class,
        User.class, Workspace.class, AuthResponse.class, Category.class,
        CategoryValue.class };
private JAXBContext context;

public JAXBContextResolver() throws Exception {
    context = new JSONJAXBContext(
            JSONConfiguration.natural().humanReadableFormatting(true)
                    .rootUnwrapping(true).build(), classes);
}

public JAXBContext getContext(Class<?> objectType) {
    return context;
  }
}

需要添加jsr311的依赖-api然后就可以了。