Artifactory服务启动后Servlet部署失败,报Jersey类找不到异常
解决Artifactory Servlet部署失败(Jersey版本问题)
从你提供的artifactory-stderr.2018-01-17日志来看,核心问题很明确:Tomcat无法找到org.glassfish.jersey.servlet.internal.ServletContainerProviderFactory类,导致Jersey Servlet容器初始化失败,进而引发了/access应用的部署错误。这大概率是Artifactory捆绑的Jersey jar包版本不兼容或者部分依赖缺失导致的。
下面是具体的修复步骤:
1. 替换Tomcat中的Jersey依赖包
- 定位到Artifactory解压目录下的Tomcat lib文件夹:
C:\bin\artifactory\tomcat\lib - 删除该目录下所有以
jersey-开头的jar文件,这些是旧的、可能存在问题的依赖 - 下载与你的Artifactory版本兼容的Jersey 2.x稳定版(比如Artifactory 6.x系列通常适配Jersey 2.25及以上版本),确保包含以下核心jar包:
jersey-server.jarjersey-servlet.jarjersey-common.jarjersey-container-servlet.jarjersey-container-servlet-core.jar
- 将下载好的jar包复制到
C:\bin\artifactory\tomcat\lib目录中
2. 清理缓存与临时文件
- 先停止Artifactory服务:打开命令提示符,执行
net stop artifactory - 删除Tomcat的工作目录和临时目录:清空
C:\bin\artifactory\tomcat\work和C:\bin\artifactory\tomcat\temp下的所有内容 - 如果
C:\bin\artifactory\tomcat\webapps目录下存在access和artifactory文件夹,也一并删除(下次启动时会自动重新部署这些应用)
3. 重启服务并验证
- 在命令提示符中执行
net start artifactory重启服务 - 查看最新的
artifactory-stderr.log,确认是否还存在Jersey类找不到的错误 - 服务启动完成后,访问
http://localhost:8081/artifactory,检查界面是否能正常加载,同时确认/access应用的部署日志不再出现严重错误
额外注意事项
- 一定要确保下载的Jersey版本和你的Artifactory版本完全匹配,跨版本混用很容易引发新的兼容性问题
- 如果替换jar包后问题依旧,建议重新下载Artifactory官方压缩包,确保下载过程中文件没有损坏,然后重新解压配置后再尝试启动
内容的提问来源于stack exchange,提问作者prelag
相关产品推荐
相关产品推荐

