Spring MVC多模块应用在Eclipse Tomcat正常,外部Tomcat启动后失效
解决Spring MVC多模块应用外部Tomcat下Jersey资源扫描停滞问题
针对你遇到的外部Tomcat启动后Jersey扫描资源停滞的问题,以下是具体排查和解决步骤:
1. 检查WEB-INF/lib依赖完整性与版本一致性
- 确保
WEB-INF/lib下包含所有Jersey核心依赖包,且版本统一:jersey-core.jarjersey-server.jarjersey-servlet.jarjersey-spring.jar(若与Spring集成)javax.ws.rs-api.jar(版本需与Jersey兼容,比如Jersey 1.x对应jax-rs 1.1)
- 删除冲突的重复依赖,比如同时存在不同版本的
javax.ws.rs-api或Jersey相关包。
2. 验证多模块打包的完整性
- 解压部署的war包,检查
WEB-INF/classes目录下是否存在in.wm包及其下的资源类(标注@Path的类)和提供者类。 - 若使用Maven多模块,确保依赖模块的
<scope>为compile,且打包时已将依赖模块的class文件或jar包打入主war包中。例如:<dependency> <groupId>your.group.id</groupId> <artifactId>dependency-module</artifactId> <version>your.version</version> <scope>compile</scope> </dependency>
3. 调整Tomcat类加载器配置
- 确保Jersey相关jar仅放置在应用的
WEB-INF/lib目录,不要放在Tomcat的lib目录下,避免Tomcat自带的jax-rs类与应用依赖冲突。 - 若仍有类加载问题,修改Tomcat的
conf/catalina.properties,调整类加载顺序,让web应用优先加载自身lib下的jar:# 确保webapp.loader优先加载WEB-INF/lib webapp.loader=${catalina.base}/webapps/${app.name}/WEB-INF/lib/*.jar
4. 核对Jersey扫描配置
- 检查web.xml中的Jersey Servlet初始化参数,确认扫描包配置正确:
<servlet> <servlet-name>Jersey Servlet</servlet-name> <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>in.wm</param-value> </init-param> <!-- 若涉及JSON序列化,添加此参数 --> <init-param> <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> - 若使用Java注解配置Jersey,确保配置类正确指定扫描包:
@ApplicationPath("/api") public class JerseyConfig extends ResourceConfig { public JerseyConfig() { packages("in.wm"); // 若有JSON相关配置,添加对应Feature register(JacksonFeature.class); } }
5. 利用日志定位具体异常
- 查看
localhost.log中的堆栈跟踪,定位停滞的根本原因:- 若为
ClassNotFoundException,对应补充缺失的依赖jar; - 若为
NoClassDefFoundError,排查依赖冲突或类加载顺序问题。
- 若为
- 调高Jersey日志级别,获取更详细的扫描过程:修改Tomcat的
conf/logging.properties,添加:com.sun.jersey.level = FINE com.sun.jersey.handlers = java.util.logging.ConsoleHandler
内容的提问来源于stack exchange,提问作者Deepak Mandlik
相关产品推荐
相关产品推荐

