我正在尝试将带有基于 Maven 的后端 Java 项目的 Angular 7 设置到单个 war 文件中。目前我正在尝试配置web.xml我目前遇到此问题的文件。我完全不确定我的方法是否有效或“好”,因此我将首先描述我正在尝试做的事情(如果您在这方面认为更好,请纠正我)。
所以我有几个JAX-RS班级,我想作为REST API. 为此,我创建了相应的javax.ws.rs.core.Application类来提供这些 REST 组件。然后我将这些Application类包含在web.xml文件中。以下是文件:
网站.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 应用程序?除其他外,但它似乎没有用。
慕桂英546537
慕的地10843
相关分类