Eclipse启动服务器遇Class Not Found Exception,附web.xml求助
解决Eclipse启动服务器时的Class Not Found Exception(针对Jersey ServletContainer)
看起来你碰到的是org.glassfish.jersey.servlet.ServletContainer类找不到的问题,这在配置Jersey Web应用时属于高频问题。结合你给出的web.xml片段,我整理了几个针对性的排查和解决方向:
1. 确认Jersey依赖是否正确引入
- Maven项目:检查
pom.xml中是否添加了jersey-container-servlet依赖,版本要和你使用的Jersey版本匹配,示例配置:<dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>2.41</version> <!-- 替换为你实际使用的版本 --> </dependency> - 手动导入Jar包:确保
jersey-container-servlet.jar已经放在项目的WEB-INF/lib目录下,并且Eclipse已将其加入构建路径(右键项目 → Build Path → Configure Build Path → Libraries,查看是否包含该Jar)。
2. 验证项目部署配置
- 右键Eclipse中的服务器(如Tomcat)→ Add and Remove,确认你的项目已正确添加到服务器部署列表中。
- 检查服务器的实际部署目录(如Tomcat的
webapps/你的项目名/WEB-INF/lib),确认Jersey相关Jar包存在。若缺失,可手动复制Jar包到该目录,或执行以下操作重新部署:- 点击菜单栏 Project → Clean,清理项目缓存。
- 重启服务器,触发重新部署。
3. 匹配Jersey版本与Servlet类路径
你配置的servlet-class是org.glassfish.jersey.servlet.ServletContainer,这是Jersey 2.x的类路径。如果你的项目使用的是Jersey 1.x,这个路径是错误的,1.x对应的类路径应为:
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
请确认你使用的Jersey版本与配置的类路径完全匹配。
4. 检查构建路径的导出设置
右键项目 → Build Path → Configure Build Path → 切换到Order and Export标签,确保所有Jersey相关的Jar包都勾选了「Export」选项。只有勾选的Jar包才会被部署到服务器的WEB-INF/lib目录中,否则会出现类找不到的问题。
内容的提问来源于stack exchange,提问作者Madhavi Jayasinghe
相关产品推荐
相关产品推荐

