Tomcat中JAX-RS(Jersey)资源无法调用的问题排查
问题排查与配置说明
一、HTTP 404错误排查要点
- 核对Jersey核心配置:
- 若使用
web.xml配置,检查servlet-mapping的url-pattern是否为/webresources/*,确保Servlet名称与Jersey的Servlet定义匹配; - 若使用Servlet 3.0+注解驱动,确认
Application子类上的@ApplicationPath("webresources")注解正确配置。
- 若使用
- 检查资源类注解:确认
MyResource类上标注了@Path("/myresource"),且接口方法(如GET请求方法)标注了@GET等对应HTTP方法注解,类需被Jersey扫描到(比如在Application子类中注册,或配置包扫描)。 - 验证Maven打包完整性:查看生成的war包,确认
WEB-INF/classes目录下存在MyResource.class文件,WEB-INF/lib包含Jersey相关依赖jar包。 - 确认Tomcat部署结构:检查Tomcat的
webapps/demorest_war目录,确保WEB-INF/web.xml、WEB-INF/classes、WEB-INF/lib结构完整,无文件缺失。 - 检查URL大小写:Jersey的
@Path注解默认区分大小写,确认请求URL中的myresource与注解中的拼写完全一致。
二、URL中demorest_war的配置位置
- IntelliJ运行配置:打开Tomcat的Run/Debug Configurations,切换到Deployment标签页,
Application context字段的值即为该上下文路径,直接修改即可调整URL中的路径部分。 - Maven pom.xml配置:在
<build>节点下添加<finalName>标签,例如:
打包后的war包名将变为<build> <finalName>demorest</finalName> <!-- 其他配置 --> </build>demorest.war,部署到Tomcat后上下文路径自动变为/demorest。 - Tomcat server.xml配置:在Tomcat安装目录的
conf/server.xml中,找到<Host>节点,添加<Context>配置强制指定路径:<Host name="localhost" appBase="webapps"> <Context path="/demorest" docBase="demorest_war" reloadable="true"/> <!-- 其他配置 --> </Host>
内容的提问来源于stack exchange,提问作者techie11
相关产品推荐
相关产品推荐

