经过数天的互联网上类似问题及其解决方案的搜索后,我现在请求您的帮助。
首先,我正在使用:
Java 8(openjdk),Maven 3,Tomcat 8.5,我使用Eclipse-2019-09作为我的IDE。
对于这个项目,我要与Maven进行一场战争,将资源添加到tomcat服务器并启动它。
现在的问题是,每当我尝试启动tomcat服务器时,都会出现此错误:
Caused by: java.lang.ClassNotFoundException: org.codehaus.stax2.ri.Stax2EventFactoryImpl
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
编辑:更准确地说,此错误在创建bean时附加。 Bean名称为“ sessionFactory”,其类为:org.springframework.orm.hibernate5.LocalSessionFactoryBean
我首先认为Eclipse不能解决stax2依赖关系,但是当我查看类路径时,依赖关系就在那里。 (如下图所示)
dependency in Eclipse pom.xml view
所以我以为jar可能不包含必需的类,但是在导航器中打开jar时,类仍然存在。
我最后要检查的一件事是查看jar文件是否包含在编译项目后生成的war文件中,并且该类仍然存在。
所以,我尝试了什么:
Maven>更新项目,清理/重建项目,Maven清理/安装并编译项目,清理tomcat工作目录,重新发布等。
卸载/重新安装Eclipse,删除所有隐藏的文件夹。
删除项目,将其克隆到新的工作区中。
更改了pom.xml中stax2的版本
检查缺少的jar是否在部署的战争中
删除了我的.m2 /存储库
在我的pom.xml中将stax2-api作为第一个依赖项加载
奇怪的是,每当我在同事计算机上克隆项目时,他都可以毫无例外地编译/启动服务器。
我必须承认,我有点迷茫,花了很多时间在论坛上搜索答案,但是我尝试的所有结果都失败了。
好吧,谢谢您阅读我,如果有人有任何想法,请告诉我。