Я пытаюсь настроить Angular 7 с внутренним java-проектом на основе maven в один военный файл. В данный момент я пытаюсь настроить файл web.xml
, в котором у меня возникла эта проблема. Я совсем не уверен, является ли мой подход правильным или «хорошим», поэтому сначала я опишу, что я пытаюсь сделать (если вы думаете об этом лучше, поправьте меня).
Итак, у меня есть пара JAX-RS
классов, которые я бы хотел использовать как REST API
. Для этой цели я создал соответствующие javax.ws.rs.core.Application
классы для предоставления этих компонентов REST. Затем я включаю классы Application
в файл web.xml
. Ниже приведены файлы:
web.xml
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>backend.backendservice.StammSolvaraJahrRestApplication</servlet-name>
<servlet-class>backend.backendservice.StammSolvaraJahrRestApplication</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>backend.backendservice.StammSolvaraJahrRestApplication</servlet-name>
<url-pattern>/rmz/*</url-pattern>
</servlet-mapping>
Еще один вариант web.xml
, который я пробовал
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>backend.backendservice.StammSolvaraJahrRestApplication</servlet-name>
<servlet-class>backend.backendservice.StammSolvaraJahrRestApplication</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>backend.backendservice.StammSolvaraJahrRestApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>backend.backendservice.StammSolvaraJahrRestApplication</servlet-name>
<url-pattern>/rmz/*</url-pattern>
</servlet-mapping>
Класс применения
public class StammSolvaraJahrRestApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> sets = new HashSet<>();
sets.add(StammSolvaraJahrRest.class);
return sets;
}
}
Я получаю ошибку: java.lang.ClassCastException: backend.backendservice.StammSolvaraJahrRestApplication cannot be cast to javax.servlet.Servlet
, и если я удалю <servlet-class>
, я получу No servlet class has been specified for servlet
. Я следую https://docs.oracle.com/cd/E24329_01/web.1211/e24983/configure.htm#RESTF183 и Как развернуть приложение JAX-RS? среди других, но, похоже, оно не работает.