404 не обнаружен после обновления до Джерси 2.31 - PullRequest
0 голосов
/ 10 июля 2020

До сих пор у меня в Tomcat работала версия Jersey 1.6. Работает без проблем. Теперь я пытаюсь обновить его до версии 2.31

Теперь после обновления до 2.31, когда я пытаюсь вызвать apis, я получил 404 not found от Tomcat. Я нигде не вижу никаких ошибок / исключений, поэтому не знаю, что происходит.

Я обновил свой файл pom с этими зависимостями

    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-common</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-multipart</artifactId>
        <version>${jersey.version}</version>
    </dependency>

Мой веб. xml имеет это

<?xml version="1.0"?>
<display-name>REST APIs</display-name>
    <servlet>
    <servlet-name>RestApi</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.abc.RESTAPIApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>RestApi</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<filter>
    <filter-name>AAFilter</filter-name>
    <filter-class>com.abc.filters.AuthenticationAuthorizationFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>AAFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Вот как выглядит класс RESTAPIApplication.

import com.google.common.reflect.ClassPath;
import org.glassfish.jersey.logging.LoggingFeature;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.ws.rs.core.Application;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class RESTAPIApplication extends Application {
    public RESTAPIApplication() {
        Set<String> restServicePackages = getRestServicePackages();
        for (String restServicePackage : restServicePackages) {
            Set<ClassPath.ClassInfo> classInfos = ClassPath.from(this.getClass().getClassLoader()).getTopLevelClasses(restServicePackage);
            for (ClassPath.ClassInfo classInfo : classInfos) {
                classes.add(Class.forName(classInfo.getName()));
            }
        }
        classes.add(MultiPartFeature.class);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...