0

我正在使用 Maven 在 Java 中创建一个新项目。我将不得不使用 Mongo 和 Hadoop。但是当我使用以下依赖项并尝试使用 tomcat:run 运行应用程序时,我得到 Throws 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

我该如何解决这个问题?

提前致谢

4

1 回答 1

0

您可能会遇到jar hell问题:

Java 应用程序的开发人员或部署人员意外地为系统提供了两个不同版本的库。

mongo-hadoop-core_1.0.2 依赖可能引入了进一步的传递依赖;可能是您需要排除的第二个 servlet-api 。
查找错误的依赖项可能很乏味,因此我建议您在构建阶段包含JBoss Tattletale插件。配置multiplejars报告并启用 failOnWarnfailOnError。生成的报告将列出可以在多个 jar 中找到的那些类。从这里您将看到应该排除哪些依赖项以逃离 jar 地狱。

于 2013-03-09T09:54:47.757 回答