До сих пор у меня в 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);
}
}