我正在使用Maven在Java中创建一个新项目。我将不得不使用Mongo和Hadoop。但是当我使用以下依赖项并尝试使用tomcat运行应用程序时:运行我得到了抛出load()异常。
依赖是
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-hadoop-core_1.0.2</artifactId>
<version>1.0.0</version>
</dependency>
,错误是:
严重:Servlet / MongoRESTApi引发了load()异常 java.lang.ClassCastException:org.apache.jasper.servlet.JspServlet无法强制转换为javax.servlet.Servlet
我该如何解决这个问题?
提前致谢
答案 0 :(得分:0)
您可能遇到jar hell问题:
Java应用程序的开发人员或部署者偶然发现了 系统可以使用的两个不同版本的库。
mongo-hadoop-core_1.0.2依赖可能引入了进一步的传递依赖;可能是你需要exclude的第二个servlet-api
找到错误的依赖关系可能很乏味,因此我建议您在构建阶段包含JBoss Tattletale插件。配置multiplejars
报告和启用 failOnWarn
和failOnError
。生成的报告将列出可在多个罐中找到的那些类。从这里你可以看到应该排除哪些依赖项以逃避jar地狱。